什么是Magento使用scriptaculous?

时间:2010-09-10 14:14:23

标签: jquery magento scriptaculous

有人知道吗?我真的很喜欢把它拉出来使用jquery,但如果核心Varien js正在使用它......

4 个答案:

答案 0 :(得分:7)

Scriptaculous是Prototype的附加组件,它是Magento使用的实际框架。从某种意义上说,它是Prototype JQueryUI对JQuery的作用。所以我不相信你会想要取代两者。这是一项非常大的任务,可能不值得付出努力。我实际上发现学习原型比通过大量的内联JavaScript(BAD MAGENTO)并用JQuery替换它更容易。

无论如何,为了回答你的问题,它在Magento的所有地方都被使用了。我相信它在管理员中最引人注目,因为它有一个有点复杂的界面。几乎你可以看到缩放,滑块,拖放等任何地方都可以归咎于Scriptaculous。几乎所有与JS相关的东西都将是原型。

答案 1 :(得分:2)

好的,Prototype是一个类似于jQuery的javascript框架,因为它处理大部分的ajax,dom操作等,并且通常只是简单而简洁地使用javascript - 消除了很多跨浏览器问题很少的努力。

Script.aculo.us用于接口端,即所有漂亮的加载器,滑块,管理部分中的拖放等。这些都是用script.aculo.us处理的。

当然jQuery可以处理这个但不能简单地用MQuery替换Magentos使用Prototype和Scriptaculous。祝你好运,祝你好运。

Magento使用javascript非常多(太多)并且整个网站都有大量的内联JavaScript。

你可以做的是接受所有这些javascript都适合你使用。如果你想为网站添加新的功能,那么你可以自由地使用jQuery,但是不要试图撤消在另一个库/框架中已经完成的工作。

如果必须使用jQuery,那么您只需将以下行添加到page.xml布局文件中:

<action method="addJs"><script>path to your jquery</script></action>

它在第38行附近,可以在默认部分找到,因此几乎影响到每一页。

然后对于您创建的任何自己的javascript文件显然都是一样的。

关于magento正在生成的内联javascript,其中很多是基于onclick事件和字符串,因此您使用jQuery删除具有类似于以下语法的事件:

$('.el').removeAttr('onclick');

例如,如果您要从添加到购物车按钮中删除javascript,请使用:

$('.btn-cart').removeAttr('onclick');

然后将您自己的事件绑定到该按钮。

as alway.removeAttr('onclick');

希望这有帮助。

德鲁

答案 2 :(得分:2)

在第一次与Magento合作开发时,我很想知道这一点。 jQuery更受欢迎,拥有更大的社区和巨大的插件源。必须去拿起并学习像Prototype或Scriptaculous这样的新Javascript库是耗时且不必要的。

我在Magento课程中发现了背后的原因。在最初(几年前)他们第一次开发Magento平台时,唯一可靠,强大且稳定的Javascript库是Prototype。 jQuery仍然处于起步阶段,并不像今天那样受欢迎,也不够稳定。这就是他们选择采用Prototype的原因。直到今天,如上所述,之前的评论说它需要太长时间,可能没必要完全删除Prototype脚本。该平台严重依赖它。

然而,有传言称Magento的下一个主要版本将在其核心中使用jQuery库。这是否会发生还有待观察。

答案 3 :(得分:1)

您仍然可以实现jQuery,只需确保使用no conflict函数。