【问题标题】:Can I use something other than $ to prevent conflict between jQuery plugins?我可以使用 $ 以外的东西来防止 jQuery 插件之间的冲突吗?
【发布时间】:2023-04-03 11:02:01
【问题描述】:

我有两个插件,它们都使用自己的 .swipe() 函数:ex: $("div").swipe();

是否可以给其中一个插件一个不同的变量而不是$

例如,我可以将jQ("div").swipe(); 用于插件A,将$("div").swipe(); 用于插件B吗?

【问题讨论】:

标签: javascript jquery


【解决方案1】:

是的,但是最好改为重命名插件。

<script src="jquery.swipe.js"></script>
<script>
    $.fn.swipeOne = $.fn.swipe;
</script>
<script src="jQuery.swipeTwo.js"></script>
<script>
$(document).ready(function(){
    $("#swipeone").swipeOne();
    $("#swipetwo").swipe();
});
</script>

否则你将不得不包含 jQuery 两次。

【讨论】:

    【解决方案2】:

    是的,您需要 noConflict 选项。

    http://api.jquery.com/jQuery.noConflict/

    如何使用它的更好示例:

    http://learn.jquery.com/using-jquery-core/avoid-conflicts-other-libraries/

    【讨论】:

      【解决方案3】:

      如果需要将两个 jQuery 插件绑定到同一个 jQuery 对象,请进入其中一个插件,然后查找 $.fn.swipe。将“刷卡”一词更改为您喜欢的任何内容(例如$.fn.mySwipe),记住它对“刷卡”一词的内部引用也可能需要更改。

      【讨论】:

        【解决方案4】:

        您可以通过使用更改 $

        var $j = jQuery.noConflict();
        

        现在你会使用$j,无论你以前使用$,例如,

        $j(document).ready(function() {
            //stuff
        }
        

        【讨论】:

          【解决方案5】:

          你可以使用

          jq(function) {
          
          })
          

          然后只参考jq

          【讨论】:

          • jq 定义在哪里?
          • at jq(function(){ - 您只需定义要使用的变量而不是 $ 符号
          • 我想你的意思是$(function(jq){...})(function(jq){...})($)
          猜你喜欢
          • 2013-03-25
          • 2023-03-22
          • 2013-07-26
          • 2011-07-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2010-10-10
          相关资源
          最近更新 更多