我有一组具有相同名称但不同值的单选按钮.我想做点什么:
$("#langs").on("change","[name=locale]",myfunction);
这是有效的,但当我点击一个新的单选按钮时,myfunction会被调用两次:一次是“旧”单选按钮,它会自动取消选中,一次是新单选按钮,我点击它.
将onchange更改为onclick不是一个解决方案,因为我将它与jquery-mobile一起使用并且它使用label包装输入,因此标签被点击,而不是输入.
解决方法
您可以将$(this)作为参数传递给myfunction,然后在myfunction中检查是否选中了单选按钮
$(“#langs”).on(“change”,“[name = locale]”,function(){myfunction($(this));});
function myfunction(elem) { if(elem.is(':checked')) { // code here } }