[英]how does no conflict work in jQuery plugin
// COLLAPSE PLUGIN DEFINITION
// ==========================
var old = $.fn.collapse
$.fn.collapse = function (option) {
......
}
$.fn.collapse.Constructor = Collapse
// COLLAPSE NO CONFLICT
// ====================
$.fn.collapse.noConflict = function () {
$.fn.collapse = old
return this
}
這是bootstrap 3 Collapse插件的代碼。 我正在通過准備這個插件代碼來學習js。
我理解語法,但我不知道沒有沖突是如何工作的? 為什么這種方式可以解決沖突? “這個”指向什么?
謝謝!
這樣做首先將$.fn.collapse
的原始值$.fn.collapse
變量old
。 這樣,它可以在覆蓋時保留參考。
在$.fn.collapse.noConflict
函數中,它從變量old
返回$.fn.collapse
的原始值。 return this
允許您將此折疊插件設置為另一個變量。
var collapsePlugin = $('*').collapse.noConflict();
jQuery.noConflict將重置$變量,因此它不再是jQuery的別名。 除了只召喚一次,你真的不需要做太多其他事情。 但是,如果您願意,可以使用返回值創建自己的別名:
var j = jQuery.noConflict();
// Do something with jQuery
j( "div p" ).hide();
// Do something with another library's $()
$( "content" ).style.display = "none";
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.