我的网站上有这个小功能:
$( 'form .radio_buttons' ).change( doTheFunction )
工作正常,但我注意到每当单选按钮选项更改时它总是运行两次。思考了5秒后,我意识到发生了什么;发生了2次变更事件:
change 1: the checked radio button is unchecked
change 2: the unchecked radio button is checked
我的问题是如何将此视为一个事件?我可以使用一个灵活的Javascript函数吗?
编辑:
似乎这里可能存在更深层次的问题,我无法在我的应用程序之外复制问题,但Scott Marcus'答案对我有用。我必须弄清楚为什么改变事件会发射两次......
答案 0 :(得分:1)
$('[name=myradio]').change(function(){
if($(this).is(':checked')){
alert('checked : '+ $(this).val());
}
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
<label><input type="radio" name="myradio" value="radio1">radio 1</label>
<label><input type="radio" name="myradio" value="radio2">radio 2</label>
答案 1 :(得分:1)
这真的不应该发生,如果没有你的代码我们真的无法确定问题是什么,但是你可以使用{{change
事件来处理click
事件。 1}}事件。
可能是您的应用程序中还有其他代码导致change
回调被触发两次。