如何在可能已经有引导脚本的环境中加载引导脚本
How to load Bootstrap scripts in environment that might have them already?
我想在我的WordPress插件中使用Bootstrap的弹出窗口(及其工具提示依赖)脚本。
插件很可能会在已经有Bootstrap的环境中着陆,我正试图确定如何以稳健的方式实现这一点。
-
我可以尝试检查插件定义和动态加载脚本,如果他们不存在(否则使用什么环境有)。然而,时间似乎具有挑战性,因为一个脚本依赖于另一个脚本,并且加载相同名称的插件并不能保证它是兼容的版本甚至是Bootstrap脚本。
-
脚本似乎包括
noConflict()
功能,我可以尝试使用它来隐藏我自己的副本,并在任何情况下忽略全局副本的存在。然而,我不确定如何得到这个机制的权利,因为弹出窗口需要工具提示工作。另外,从Bootstrap问题跟踪器来看,工具提示中的noConflict()
目前已经损坏,只会在v3中修复。( -
似乎额外的加载程序(如yepnope)可以为我处理这个问题,但感觉就像把自己挖得更深。
这些(或其他)方法中的哪一个是实际实现的?
使用RequireJS来加载你自己的脚本,并用一些闭包来包装它们。
// let's say tooltip was defined already
$.fn.tooltip = function(data){
$(this).mouseover(function(){
console.log(data.title);
});
};
// we'll apply the old tooltip to .tooltip1
$('.tooltip1').tooltip({
title: 'tada',
placement: 'bottom'
});
// what version of jquery did we have out here
console.log($.fn.jquery);
require({
"paths": {
"jquery": "//ajax.googleapis.com/ajax/libs/jquery/1.10.1/jquery.min",
"bootstrap": "//twitter.github.io/bootstrap/assets/js/bootstrap.min"
},
shim: {
"bootstrap": {
deps: ['jquery'],
exports: '$.fn.tooltip'
}
}
}, ['jquery', 'bootstrap'], function($){
// what version of jquery do we have in here
console.log($.fn.jquery);
// now we apply the bootstrap tooltip to .tooltip2
$('.tooltip2').tooltip({
title: 'tada',
placement: 'bottom'
});
});
http://jsfiddle.net/moderndegree/prSUF/相关文章:
- 当包含另一个asp文件时,是否也包含所有引用的样式和脚本页面
- 借助asp.net验证或java脚本对多个文本进行验证
- chrome扩展:尽管运行了at:documentidle,js脚本还是过早启动
- Java脚本时间添加
- 不显示带有本地json文件数据的谷歌地图脚本
- JQuery添加元素需要在我的js之前再次添加JQuery脚本
- 从远程脚本获取用户IP
- 如何在谷歌应用程序脚本环境中获取谷歌搜索输出
- 如何从批处理文件调用一个带有2个参数的java脚本函数,并将结果返回到环境变量
- PHP:更改调用脚本的环境
- WP管理员试图在htpasswd保护的环境中异步加载脚本
- 重新加载 Chrome 扩展程序内容脚本执行环境
- 在 sharepoint 环境中使用脚本调用 lists.asmx Web 服务
- Can Kentico's脚本和css缩小被禁用用于开发环境
- 如何在多个环境(终端和浏览器)中运行JavaScript测试脚本
- 如何在可能已经有引导脚本的环境中加载引导脚本
- 环境变量打字脚本
- 什么是正确的方式来写我的脚本'src'本地开发环境的Url
- 实现在游戏脚本环境中使用自定义对象模型的jQuery
- 使用Windows脚本复制子进程环境