javascript – 如何判断是否实际点击了复选框?

前端之家收集整理的这篇文章主要介绍了javascript – 如何判断是否实际点击了复选框?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

我有多个输入的绑定.

$("#foo","#bar","#fooCheckBox","#barCheckBox").bind("change",function() {
   // do something here
   // do something extra here if $(this) was actually clicked
});

由于还有其他方法可以启动输入的更改,(jquery的.change()方法),有没有办法判断是否实际点击了一个复选框以导致更改事件?

我尝试了焦点但是焦点事件在复选框的更改事件之前触发,因此不起作用.

$("#foo",function() {
   // do something here
   if($(this).is(":focus")) // do something extra here but focus doesn't happen here for checkBoxes.
});

编辑#1

对不起,我真的不知道如何进一步澄清…我不在乎是否选中了复选框…我知道.is(“:checked”)是什么以及如何使用它.这没有用.我只想知道是否实际点击了复选框以触发更改事件.

编辑#2

我有一个解决方法……我首先绑定点击输入并选择并存储元素的id.然后在我的更改绑定中,我检查更改的元素是否与上次单击的元素相同.

$("input,select").click(function() {
    var myId = $(this).attr("id");
    lastClickedStore.lastClicked = myId;
});

然后在更改绑定中,我只检查当前ID是否等于最后点击的Id.

$("#foo",function() {
   // do something
   if(lastClickedStore.lastClicked == $(this).attr("id")) // do something else.
}
最佳答案
绑定点击而不是更改.当使用键盘更改复选框的状态时,仍会触发click事件,但在这种情况下event.pageXevent.pageY将为0,因此您可以编写:

$("#foo,#bar,#fooCheckBox,#barCheckBox").click(function(event) {
    // Do something here...
    if (event.pageX > 0) {
        // Check Box was clicked,do something extra here...
    }
});
原文链接:https://www.f2er.com/jquery/428570.html

猜你在找的jQuery相关文章