淘先锋技术网

首页 1 2 3 4 5 6 7

最近做项目的时候,遇到了一个问题:在引入jquery库和imgbox插件之后,调用imgbox出现了冲突。

为了解决这个问题,我分别查看了jquery和imgbox的官方文档,最终找到了问题所在。原来是因为两者都定义了$变量。jquery定义了全局变量$表示jquery本身,而imgbox也用了$表示它自己的命名空间,在调用imgbox方法的时候就有可能出现冲突。

//jquery源码中定义的全局变量$
var jQuery = window.jQuery;
window.$ = jQuery;
//imgbox中也定义了$变量
var $ = {
/**
* options
*     speed:动画速度,单位为毫秒。
*     event:绑定事件,默认为click。
*     minWidth:最小宽度,单位为像素。
*     minHeight:最小高度,单位为像素。
*     onShow:显示大图的回调方法。
*     onHide:隐藏大图的回调方法。
*     filter:筛选器,用于在多个元素中只选择需要绑定事件的元素。
*     attr:属性,用于在img标签中获取大图路径。
}
};

解决这个问题的方法也很简单,可以使用jquery.noConflict()方法来释放$变量的控制权,这样imgbox就不会再与jquery发生冲突了。

//释放$变量控制权
var $j = jQuery.noConflict(true);

以上就是我解决imgbox和jquery冲突的过程及方法,希望能对大家有所帮助。