我正在创建一个要在其他网站上发布的Web小部件。在小部件中,它将调用jQuery,我不希望jQuery与网站可能已安装的其他JavaScript库冲突。当我加载jQuery时,我想像这样调用jQuery:
JQuery_MYSite('id').find('selector');
我发现如果我这样做,那么即使其他网站使用$
$.
当窗口小部件加载时,查明是否加载了jQuery。如果是这样,那么它将使用$
来调用jQuery。但我知道$
并不是jQuery独有的 - 其他javascript库使用它。那么如何在不干扰网站所有者前缀的情况下使用自己的jQuery前缀。
答案 0 :(得分:2)
在小部件中,它将调用jQuery,我不想要jQuery 与网站可能拥有的其他JavaScript库冲突 安装。
我认为你无法做到这一点,因为在加载其他脚本之后必须调用jQuery.noConflict()
。因此,如果您无法了解其他脚本,那么您将无法避免冲突。
当窗口小部件加载时,查明是否加载了jQuery。如果是这样,那么它 将使用$来调用jQuery。但我知道$并不是唯一的 jQuery - 其他javascript库使用它。那我该如何使用自己的呢? jQuery前缀,不会干扰网站所有者前缀。
使用自动执行的匿名函数包装您的窗口小部件代码:
(function($){
// your widget code here
// $ will always be jQuery
})(jQuery);
答案 1 :(得分:2)
var myJquery = jQuery.noConflict();
然后,如果你想得到幻想:
(function($){
$(".whatever").doSomeStuff();
})(myJquery);
答案 2 :(得分:1)
<script type="text/javascript">
$.noConflict();
jQuery(document).ready(function($) {
// Code that uses jQuery's $ can follow here.
});
// Code that uses other library's $ can follow here.
</script>
答案 3 :(得分:0)
$.noConflict();
(function($){
// $ is jQuery here
})(jQuery);
答案 4 :(得分:0)