0

我正在使用一个 jQuery 插件,它与jQueryUI 效果核心中的某些内容发生冲突,很可能与轻松动画有关。

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

在 jQueryUI Effects Core 中,如果我删除以下代码,这两个插件都可以正常工作而不会发生冲突

$.effects = {
    effect: {}
};

我什至不知道那是为了什么,所以我想了解一下。

提前感谢任何愿意帮助我的人。

4

2 回答 2

2

如果您正在寻找库本身的冲突,我会使用 jQuery 的开发版本。我确定您已经在使用某种调试工具,例如 firebug 或 chromes javascript 控制台。从那里你只需要找到错误并获取堆栈跟踪。Firefox 的“中断所有错误”功能在这种情况下很有用。

也不要害怕将自己的代码添加到 jquery 的开发版本中。把它弄乱了,把它当作你自己的代码,你总是可以再次下载它。

祝你好运!

于 2012-12-24T19:13:51.667 回答
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

于 2012-12-24T19:22:21.790 回答