当一个下拉框被更改时,我对于第二个动作发生的最佳方式感到困惑。我没想到以下工作,我期望动态添加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:”文本框;现在我想要选择某些值时执行一些特殊操作,理想情况下我想继续按原样继续使用把手助手。)
答案 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