jQuery 手风琴 + Magento 问题 - 可能发生冲突?

发布于 2024-12-06 13:44:18 字数 571 浏览 2 评论 0原文

我在 Magento 环境中使用 jQuerytools 手风琴/选项卡,由于某种原因,该脚本似乎无法正常工作。

如果您查看下面的工作页面,您将看到独立环境中的内容和脚本运行正常。

但是,一旦将其放入 Magento(非工作页面),手风琴窗格就不会打开,我看不到任何明显的错误。

工作页面 - http://www.justkitchens.co/sandbox/ JustDoors/amic-kitchen-doors-chooser.html 非工作页面 - http://www.justkitchens.co/chooser-test/

可以有人帮我吗?

编辑:我已经注释掉了被调用的 jquery-ui.min.js 脚本,事情似乎正在工作......所以看起来那里有冲突......

I'm using the jQuerytools accordion/tab within a Magento environment and for some reason the script doesn't seem to be working.

If you look at the working page below you will see the content and script in a standalone environment working ok.

But as soon as it is dropped in to Magento (Non-working page) the accordion panes don't open and I can't see any obvious errors.

Working Page - http://www.justkitchens.co/sandbox/JustDoors/acrylic-kitchen-doors-chooser.html
Non-Working Page - http://www.justkitchens.co/chooser-test/

Can anyone help me out here?

EDIT: I've commented out the jquery-ui.min.js script being called up and things seem to be working... so looks like a conflict there...

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

烂人 2024-12-13 13:44:19

你是否在 noConflict 模式下运行 jquery ?

Magento 使用原型,所以你需要这样做。

来自 http://www.fontis.com.au/blog/magento/使用-jquery-magento

通常情况下,这就是您需要做的全部事情,但是因为 Magento 还包含
原型,有一个我们需要处理的微妙之处。 jQuery 使用 $ 作为访问 jQuery 库的简写。但Prototype也使用$来访问自身。这会导致 Web 浏览器的 global JavaScript 命名空间发生冲突。幸运的是 jQuery 提供了解决方案,jQuery.noConflict(); 函数为 jQuery 定义了新的简写,例如:

var $j = jQuery.noConflict();

上述代码需要位于 jQuery 库代码之后,但位于任何其他 JavaScript 库之前。您可以在已复制到 js 目录的 jQuery 文件底部包含 noConflict 调用。因此,您需要确保我们在layout/page.xml中包含的“action method”行位于包含Prototype或任何其他JavaScript库的代码之前。

另一篇关于它的文章: http://css-tricks.com/2011-使用-jquery-in-magneto/

Are you running jquery in noConflict mode?

Magento uses prototype so you need to do this.

From http://www.fontis.com.au/blog/magento/using-jquery-magento:

Normally, this would be all you need to do, however because Magento also includes
Prototype, there is a subtlety we need to deal with. jQuery uses $ as shorthand for accessing the jQuery library. But Prototype also uses $ to access itself. This causes a conflict in the global JavaScript namespace of the web browser. Fortunately jQuery provides a solution, the jQuery.noConflict(); function defines a new shorthand for jQuery, such as:

var $j = jQuery.noConflict();

The above code needs to come after the jQuery library code, but before any other JavaScript libraries. You can include the noConflict call at the bottom of the jQuery file you have copied to the js directory. Therefore you need make sure that "action method" line we included in layout/page.xml comes before the code that includes Prototype or any other JavaScript libraries.

An alternative article on it: http://css-tricks.com/2011-using-jquery-in-magneto/

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文