【发布时间】:2014-04-06 07:02:05
【问题描述】:
Event.observe(
'size_list',
'change',
itemOptions["_hiddenSkuField"].getSkuOfProductBySize
);
size_list 是一个带有一些选项的下拉列表。所以,这应该调用一个会为我生成一些 HTML 的函数,但这不会发生。不用说,它在 Chrome 和 Firefox 中都能完美运行。
看不出是什么问题,我在调试的时候没有输入myFoo甚至上面的.observe代码。
getSkuOfProductBySize: function() {
document.getElementById('product-type').value = '';
document.getElementById('sku_hidden').value = '';
var selectedIndex = document.getElementById('dropdown_options').value;
for (var i=0; i<itemOptions["_hiddenSkuField"].products.length; i++) {
if (itemOptions["_hiddenSkuField"].products[i].size == selectedIndex) {
document.getElementById('sku_hidden').value = itemOptions["_hiddenSkuField"].products[i].sku;
itemOptions["_hiddenSkuField"].backupResponse = itemOptions["_hiddenSkuField"].products[i];
itemOptions["_hiddenSkuField"].callShowHtmlOfButtons(itemOptions["_hiddenSkuField"].products[i]);
return;
}
};
}
itemOptions["_hiddenSkuField"] 是我拥有所有东西的全局对象。 :D
更新:
我尝试在函数或观察者周围放置简单的alert(),但它不起作用。还尝试了 click 事件 - 没有成功...
我很少做前端开发,但经过今天的努力,我知道为什么 IE 被这么讨厌了。
【问题讨论】:
-
可以发一下相关的
HTML吗? -
@MaxiWheat - 我更新了我的答案。 :) 这就是生成 HTML 的函数。
-
哪个版本的 PrototypeJS? - 最近的公开版本是 1.7.1 - 页面上是否存在多个具有相同 id 的元素?
-
您可能希望通过此操作并将所有
document.getElementById实例替换为$,因为前者不返回扩展元素(即:添加了所有原型扩展的元素到它)在 IE 中。只有使用 Prototype “getter”之一($()或$$()或Element.extend()),您才能获得包含所有额外 Prototype 糖的对象。 -
@Walter - 好的,我明白你的意思了。但问题是我什至没有进入被调用的
getSkuOfProductBySize函数......
标签: internet-explorer prototypejs