Javascript 用prototype观察多个select菜单
我想观察多个选择菜单,并使用prototype响应它们的更改,但似乎只观察到第一个菜单。这是我的代码:Javascript 用prototype观察多个select菜单,javascript,prototypejs,Javascript,Prototypejs,我想观察多个选择菜单,并使用prototype响应它们的更改,但似乎只观察到第一个菜单。这是我的代码: $('product_options').select('select').invoke("observe","change",optchange); 例如,如果product_选项中有3个选项,那么它只观察第一个选项,我认为这可能是因为调用,所以我尝试了以下方法: $('product_options').select('select').each(function(sel){ $
$('product_options').select('select').invoke("observe","change",optchange);
例如,如果product_选项中有3个选项,那么它只观察第一个选项,我认为这可能是因为调用,所以我尝试了以下方法:
$('product_options').select('select').each(function(sel){
$(sel).observe("change",optchange);
});
但还是不行,有什么想法吗
选择器作为
控制台肯定没有问题。debug()
向我显示了所有的选择菜单您是否检查了JS错误控制台?下面的操作很好:
<html>
<head>
<title>optchange</title>
<script type="text/javascript" src="prototype.js"></script>
</head>
<body>
<div id="product_options">
<select id="o0">
<option>1</option>
<option>2</option>
</select>
<select id="o1">
<option>1</option>
<option>2</option>
</select>
<select id="o3">
<option>1</option>
<option>2</option>
</select>
</div>
<script type="text/javascript">
function optchange(e) {
alert("optchanged");
}
$('product_options').select('select').invoke("observe","change", optchange);
</script>
</body>
</html>
选择更改
1.
2.
1.
2.
1.
2.
功能选项更改(e){
警报(“optchanged”);
}
$('product_options')。选择('select')。调用(“观察”、“更改”、“选择更改”);
很好,应该以最小的复杂性检查它。这肯定是其他地方的问题。积分是你的:)非常有用!我怎么知道在“optchange”中是哪个select触发了它?@xain optchange被传递了一个事件对象(在示例“e”中)。您可以请求触发事件的元素。var触发器=e.element()