jquery点击标签+复选框检测哪个?

时间:2012-09-24 21:41:26

标签: jquery

我正在尝试检查event.target.nodeName,如下所示:

$("input").click(function(e){
    if(e.target.nodeName == "LABEL") {
       alert('label click');
        e.preventDefault();
    } else {
       alert($(this).attr('checked') ? 'checked': 'unchecked');
    }
});

但名称永远不等于标签?我做错了什么?

快速jsfiddle

3 个答案:

答案 0 :(得分:5)

您应该选择label)元素。目前,点击处理程序的唯一目标是输入元素:

$("label").click(function(e){
  // ...
})

http://jsfiddle.net/j7nSq/

答案 1 :(得分:2)

我认为这不起作用的原因是因为只有在点击输入时才会运行:

  if(e.target.nodeName == "LABEL") {

答案 2 :(得分:1)

您根本没有选择标签。首先选择标签,然后重试:

你在这里遇到错误的元素..

$('label').on('click', function(e) {
    // Your logic here

});

而不是点击输入。

确保使用.on()委派活动。