Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/462.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 启用仅单击一个子jquery_Javascript_Jquery_Html - Fatal编程技术网

Javascript 启用仅单击一个子jquery

Javascript 启用仅单击一个子jquery,javascript,jquery,html,Javascript,Jquery,Html,所以我有下面的html <li clas='k-item'> <input type='checkbox'> <span>ABC</span> </li> 我对jquery没有太多的经验为什么不从输入开始呢?然后,您可以使用e.stopPropagation()阻止LI获得单击事件(这是我收集您的目标): 你只需要这个: $('.k-item').on('click', function (e) { if ($(e.t

所以我有下面的html

<li clas='k-item'>
<input type='checkbox'>
<span>ABC</span>
</li>

我对jquery没有太多的经验

为什么不从
输入开始呢?然后,您可以使用e.stopPropagation()阻止LI获得单击事件(这是我收集您的目标):

你只需要这个:

$('.k-item').on('click', function (e) {
        if ($(e.target).is('input')) {// or event.target.type
               //do stuff
        }
});

只需选择所需元素并应用事件侦听器:

$('.k-item > input').on('click', function() { // ...  });
您需要使用:

$('.k-item input').click(function(){
   //modify the rest handler code...
});
更新:如果为li定义了单击,并且您不希望在子跨度上触发该操作,则需要停止事件传播

$('.k-item span').click(function(e){
    e.stopPropagation();//do not trigger parent click on child span
});

已分配了单击事件以完成lidynamically@Richa:你能澄清一下代码的实际目的吗,因为你的原稿没有上下文意义吗?:)我有一个动态生成的li,剑道给它分配了一些点击事件。现在,我想以某种方式从所有li中解除该单击事件的绑定,并仅启用它input@Richa:只需使用
stopPropagation
停止点击即可。回答:谢谢。非常好:)我想禁用已经动态定义的li click。所以我不能这么做也许是这样?我不知道.k-item和span的作用是什么,但似乎您可以在单击输入时禁用它们。您想永久禁用这些事件还是例如禁用突出事件?如果它们必须依赖于输入,则应侦听.change事件并触发父级和跨度的单击事件。你能清楚地解释一下预期的输出是什么吗?可能的重复
$('.k-item input').click(function(){
   //modify the rest handler code...
});
$('.k-item span').click(function(e){
    e.stopPropagation();//do not trigger parent click on child span
});