【发布时间】:2012-08-06 07:12:01
【问题描述】:
我正在开发 dnn 模块。随着同一页面上模块数量的增加,Jquery 会多次调用。
(function ($) {
$('#grid').hoverfold();
})(jQuery);
这是我用来避免冲突的方法。如果我在下一个效果中使用相同的效果,它就不起作用了。
【问题讨论】:
标签: dotnetnuke
我正在开发 dnn 模块。随着同一页面上模块数量的增加,Jquery 会多次调用。
(function ($) {
$('#grid').hoverfold();
})(jQuery);
这是我用来避免冲突的方法。如果我在下一个效果中使用相同的效果,它就不起作用了。
【问题讨论】:
标签: dotnetnuke
例如,如果您查看/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 控件。我希望这会有所帮助。
【讨论】:
var $j = jQuery.noConflict();
$j(document).ready(function(){
...code goes here...
});
试试这个,
【讨论】:
jQuery.noConflict(),这将从页面中删除jQuery变量,这将破坏所有其他试图使用jQuery的功能。