【问题标题】:How to avoid jquery conflict in dnn如何避免 dnn 中的 jquery 冲突
【发布时间】:2012-08-06 07:12:01
【问题描述】:

我正在开发 dnn 模块。随着同一页面上模块数量的增加,Jquery 会多次调用。

    (function ($) {  
        $('#grid').hoverfold();
    })(jQuery); 

这是我用来避免冲突的方法。如果我在下一个效果中使用相同的效果,它就不起作用了。

【问题讨论】:

    标签: dotnetnuke


    【解决方案1】:

    例如,如果您查看/DesktopModules/Admin/HostSettings/HostSettings.ascx,您会注意到 dnn 核心开发人员正在使用以下代码:

    (function ($, Sys) {
     $(document).ready(function () { 
        //Your code goes here.
     });
    }(jQuery, window.Sys));

    除此之外,如果您注意到 $(document).ready 函数,它们会重复相同的代码来处理由于更新窗格而导致的 ajax 回发。这将确保即使模块启用了 ajax,您的代码也能正常工作。

     $(document).ready(function () {
            setUpDnnHostSettings();
            Sys.WebForms.PageRequestManager.getInstance().add_endRequest(function () {
                setUpDnnHostSettings();
            });
        });

    您还可以在 admin 文件夹中查看 core 中的其他 ascx 控件。我希望这会有所帮助。

    【讨论】:

      【解决方案2】:
      var $j = jQuery.noConflict();
      $j(document).ready(function(){
          ...code goes here...
      });
      

      试试这个,

      【讨论】:

      • 如果你调用jQuery.noConflict(),这将从页面中删除jQuery变量,这将破坏所有其他试图使用jQuery的功能。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-08-11
      • 2011-07-02
      • 2018-02-03
      • 1970-01-01
      相关资源
      最近更新 更多