簡體   English   中英

如何在jQuery插件中沒有沖突

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM