我有一个Magento网站。我有两个js文件,一个用Prototype编写,另一个用jQuery编写。
我有两个选择元素,大约有10个选项。从jQuery我改变第一个选择属性"选择" (还有一些)。在Prototype中,我有一个类,它在两个select元素之间创建依赖关系。
如果我单击第一个选择元素并使用鼠标选择一个选项,则第二个选择元素将仅显示链接到我在第一个选择元素中选择的选项的选项。这已经完成了原型。
我的想法是我想从jQuery自动执行click / trigger。第一个选择更改它的选择选项。但第二个选择元素显示所有选项(并且应仅显示链接到第一个选择元素的选项)。
在Prototype文件中我有一些事件观察者,我猜这些观察者不是从jQuery触发的:
var select_el = $('select_' + id);
...
Event.observe(select_el, 'change', this.update.bindAsEventListener(this));
Event.observe(select_el, 'swatches:change', this.update.bindAsEventListener(this));
...
update: function(event) { ...
所以我需要以某种方式从jQuery触发这些事件,或者在Prototype中设置autocheck。 请告诉我该怎么做。
我已经在stackoverflow上读到来自Prototype的事件无法从jQuery触发。应该有办法做到这一点。我还没找到它。
我尝试过jQuery函数,如:
jQuery("option[value='" + checkedId +"']").attr("selected","selected").parent().focus();
jQuery("option[value='" + checkedId +"']").parent().trigger("onchange");
jQuery("option[value='" + checkedId +"']").parent().trigger('change');
" parent()"是第一个选择元素。第一个选择元素会根据需要更改,但第二个选择元素应在第一个选择更改后自动更改。这永远不会发生。仅当我在选择上单击鼠标并手动选择一个选项时,它才有效。我想从jQuery中做到这一点,而无需手动点击所需的选项。
感谢您阅读本文,现在只需为我解决此问题。
问候。