0

我无法确定将函数放在哪里try{jQuery.noConflict();}catch(e){}; 让我的 jquery 恢复正常工作。我也是使用 jquery 代码的新手,所以我不知道从哪里开始,所以一步一步地帮助我了解实际放置代码的位置。

Firebug 指出网站上可能存在冲突的代码。“选择状态”下拉菜单不起作用,因为 javascript 已作废。

主题网站

在此处输入图像描述 堆叠的jQuery:

e()chosen...=0.9.11 (line 9)
e()chosen...=0.9.11 (line 9)
e()chosen...=0.9.11 (line 9)
e(e=select#billing_state.state_select, t=undefined)chosen...=0.9.11 (line 9)
(?)()chosen...=2.0.14 (line 9)
e(r=0)chosen...=0.9.11 (line 9)
a(e=Object[select#billing_state.state_select, select#shipping_state.state_select],   n=function(), r=undefined)jquery.min.js (line 2)

a(e=function(), t=undefined)jquery.min.js (line 2)
e(n=undefined)chosen...=0.9.11 (line 9)
(?)(e=function())chosen...=2.0.14 (line 1)
a(t=[Document /products-page/checkout/, [function()]])jquery.min.js (line 2)
a(e=Document /products-page/checkout/, t=[Document /products-page/checkout/, [function()]])jquery.min.js (line 2)

a(e=undefined)jquery.min.js (line 2)
a()jquery.min.js (line 2)
4

1 回答 1

1

通过使用 jQuery,您将(默认情况下)使用美元符号来声明 jQuery 语句, 例如: $('#id').val(); . 然而,jQuery 并不是唯一这样做的 JavaScript 库。

通过说您正试图让您的“ jquery 恢复正常工作”,我假设您直到最近一直在成功使用它。这可能是由于添加了一个新的 JavaScript 库,该库在其语句中也使用了美元符号。为了防止这种情况,您使用该noConflict()方法是正确的,但是它不需要try...catch块。

noConflict()方法可以添加几个地方:

1) 在您声明/使用 jQuery 库之后:

<script src="jquery.js"></script>

<script>
  $.noConflict();
  // Code that uses other library's $ can follow here.
</script>

jQuery.noConflict();2)您可以通过添加作为最后一行将它放在 jQuery 库的最后一行

请注意,当您noConflict()之后使用任何 jQuery 语句时,必须使用jQuery前缀而不是美元符号来声明。

可以在jQuery API其他 StackOverflow 答案中找到更多信息

问候,

授予

于 2013-09-16T18:17:39.937 回答