jQueryUI和jQuery插件冲突

时间:2012-12-24 19:05:56

标签: javascript jquery jquery-ui plugins conflict

我使用的jQuery插件与 jQueryUI Effects Core 中的内容有冲突,很可能与缓动动画有关。

我无法发布代码因为插件不是开源的,所以我的问题是:有什么方法可以捕获这个错误并修复它吗?

在jQueryUI Effects Core中,如果我删除以下代码,那么插件正常工作没有冲突

$.effects = {
    effect: {}
};

我甚至不知道那是什么,所以我想理解。

提前感谢任何想要帮助我的人。

2 个答案:

答案 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>

来源:jQuery.noConflict