// 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。
我理解语法,但我不知道没有冲突是如何工作的? 为什么这种方式可以解决冲突? “这个”指向什么?
谢谢!
答案 0 :(得分:1)
这样做首先将$.fn.collapse
的原始值分配给变量old
。这样,它可以在覆盖时保留参考。
在$.fn.collapse.noConflict
函数中,它会从变量$.fn.collapse
中放回old
的原始值。 return this
允许您将此折叠插件设置为其他变量。
var collapsePlugin = $('*').collapse.noConflict();
答案 1 :(得分:0)
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";