我有以下代码:http://jsfiddle.net/0Lp4oqn6/。
On <input type='radio' name='radio' class='radio' value='on'>
Off <input type='radio' name='radio' class='radio' value='off'>
$('.radio').on('change', function() {
alert( $(this).val() )
}).trigger('change')
这是一组简单的2个单选输入框和一个事件处理程序,用于在单选输入框值更改时触发。还有一个.trigger('change')
来触发事件处理程序在页面加载时发生一次。
当页面加载时,事件处理程序会被触发两次。第一个提示将显示on
,第二个提示将显示off
。但是当我手动点击单选按钮时,更改处理程序不会被触发两次。
为什么使用.trigger('change')
会触发事件处理程序两次?手动操作时为什么行为不同?如何以适当的方式通过编程触发事件处理程序而不会发生两次?
.trigger('change')
时,为什么事件处理程序会被触发两次? 因为有两个单选按钮,所以$('.radio').trigger()
会被调用两次。$('.radio').eq(0).trigger('change')
。