我使用的jQuery插件与 jQueryUI Effects Core 中的内容有冲突,很可能与缓动动画有关。
我无法发布代码因为插件不是开源的,所以我的问题是:有什么方法可以捕获这个错误并修复它吗?
在jQueryUI Effects Core中,如果我删除以下代码,那么插件正常工作没有冲突
$.effects = {
effect: {}
};
我甚至不知道那是什么,所以我想理解。
提前感谢任何想要帮助我的人。
答案 0 :(得分:2)
如果您正在寻找库本身的冲突,我会使用jQuery的开发版本。我确定你已经在使用某种调试工具,比如firebug或chromes javascript控制台。从那里你只需要找到错误并获得堆栈跟踪。在这种情况下,Firefox的“打破所有错误”功能非常有用。
另外,不要害怕将自己的代码添加到jquery的开发版本中。搞砸它并将其视为您自己的代码,您可以随时再下载它。
祝你好运!答案 1 :(得分:1)
许多JavaScript库使用$
作为函数或变量名,就像jQuery一样。在jQuery的情况下,$
只是jQuery
的别名,因此所有功能都可以在不使用$的情况下使用。如果我们需要在jQuery旁边使用另一个JavaScript库,我们可以通过调用$.noConflict()
将$的控制权返回给另一个库:
<script type="text/javascript" src="other_lib.js"></script>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript">
$.noConflict();
// Code that uses other library's $ can follow here.
</script>
这种技术与.ready()方法对jQuery对象进行别名的能力特别有效,因为在传递给.ready()的回调中,如果我们愿意,我们可以使用$而不用担心以后的冲突:
<script type="text/javascript" src="other_lib.js"></script>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript">
$.noConflict();
jQuery(document).ready(function($) {
// Code that uses jQuery's $ can follow here.
$("div").hide();
});
// Code that uses other library's $ can follow here.
$("content").style.display = 'none';
</script>