2

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

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

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

4

2 回答 2

3

例如,如果您看一下,/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 控件。我希望这将有所帮助。

于 2012-08-06T13:37:29.743 回答
0
var $j = jQuery.noConflict();
$j(document).ready(function(){
    ...code goes here...
});

尝试这个,

于 2012-08-06T07:15:50.323 回答