是否将两个onChange事件处理程序添加到正式支持的HTML select中?

时间:2014-03-11 05:49:19

标签: javascript jquery html cross-browser

当一个下拉框被更改时,我对于第二个动作发生的最佳方式感到困惑。我没想到以下工作,我期望动态添加change()来替换静态的,但它确实有效(到目前为止在Firefox,Chrome和Opera 12中测试过)。

这是否是任何HTML标准的正式部分,或者我是否幸运,它可能会在未来版本或旧版浏览器中出现?

<select id="testing" onChange="alert('first');">
<option></option>
<option value="1">One</option>
<option value="2">Two</option>
</select>

<script>
$('#testing').change(function(){
    alert("second");
    });
</script>

(对于上下文,我有一个Handlebars帮助函数制作<select> HTML,有自己的onChange,用于隐藏/显示“other:”文本框;现在我想要选择某些值时执行一些特殊操作,理想情况下我想继续按原样继续使用把手助手。)

1 个答案:

答案 0 :(得分:1)

简短回答

Yes, it is officially supported;这很好,在标准改变之前不会破裂。

长(呃)回答

“静态”on[event](在这种情况下为onchange)处理程序与使用addEventListener或类似程序添加的“动态”处理程序分开调用(jQuery为您规范化)。

事实上,许多Google Web前端在其JavaScript中使用on[event]式处理程序。

进一步阅读:

https://developer.mozilla.org/en-US/docs/Web/Guide/Events/Event_handlers