2012-08-06 105 views
2

我正在開發dnn模塊。隨着模塊數量在同一頁面上增加,jquery會多次調用。如何避免dnn中的jquery衝突

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

這是我用來避免衝突。如果我使用相同的下一個效果,它不起作用。

回答

0
var $j = jQuery.noConflict(); 
$j(document).ready(function(){ 
    ...code goes here... 
}); 

試試這個,

+0

如果您調用'jQuery.noConflict()',那將從頁面中刪除'jQuery'變量,這將打破嘗試使用jQuery的所有其他功能。 – bdukes 2014-01-22 15:48:09

3

例如,如果你看看/DesktopModules/Admin/HostSettings/HostSettings.ascx,你會發現DNN的核心開發人員正在使用下面的代碼:

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

除此之外,如果你注意到$(document).ready函數,它們重複相同的代碼來處理由於更新窗格而導致的ajax post backs。這將確保你的代碼能夠正常工作,即使模塊啓用了Ajax。

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

您還可以查看管理文件夾中核心中的其他ascx控件。我希望這將有所幫助。