jQuery无法正常工作,可能与原型冲突



抱歉标题含糊不清。

我正在为我公司的网站制作一个新主题,页面上有两个jQuery选项卡和一个滑块。

选项卡和滑块都不起作用 - 我不太确定为什么。我继承了设计并简单地更改了主题 - 我认为这可能与正在加载的多个 jQuery 脚本有关 - 滑块抛出一个错误,指出该方法.split()不存在,并且选项卡只是没有按照应有的方式工作。

你应该这样做:

<action method="addJs"><script>jquery/jquery.js</script></action>
<action method="addJs"><script>jquery/jquery.plugin.js</script></action>
<action method="addJs"><script>jquery/jquery.moreplugin.js</script></action>
<action method="addJs"><script>jquery/jquery.noConflict.js</script></action>
<action method="addJs"><script>prototype/prototype.js</script></action>

在页面中.xml布局。

jquery.noConflict.js file:

var jQuery = $.noConflict();

之后,您可以在任何您想要的地方调用jQuery()函数。顺序是:jquery -> jquery 插件 -> jquery no conflict -> prototype

Explosion Pills 是对的——你应该使用 jQuery.noConflict。 首先导入 jQuery,然后,在导入原型之前,插入该行

<script type="text/javascript">
    jQuery.noConflict();
</script>

如果你这样做,在你的应用程序中引用jQuery的其他任何地方,执行jQuery(...)jQuery.,而不是$(...)$.。 它不应该弄乱你的脚本导入,除非你导入的那些脚本写得不好,没有为自己定义$。

我更喜欢使用以下代码片段:

<script type="text/javascript">
  jQuery.noConflict();
  (function($) {
    $.ajax(...);
  })(jQuery);
</script>

它不会与原型冲突,并且仍然使用"$"表示jQuery。以下是一些更多信息:http://www.magentogarden.com/blog/using-jquery-in-magento-with-good-programming-practice.html

最新更新