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为何如此讨厌。
答案 0 :(得分:1)
这是一个丑陋的解决方案,因为你正在使用prototype.js,但你仍然可以尝试使用替代方法(如果你没有找到其他解决方案) - 使用jQuery绑定一个observe事件:
$('#dropdown_options').bind('change', function(){
itemOptions["_hiddenSkuField"].getSkuOfProductBySize();
});
答案 1 :(得分:1)
在Prototype中,上面的内容将是
$('size_list').observe('change', function(evt){
itemOptions['_hiddenSkuField'].getSkuOfProductBySize();
});
我怀疑还有一种更简单的方法来构建这个页面,这样对象就可以拥有他们需要的所有数据,而且你不需要在DOM中挂出这个“上帝对象”。