Javascript 启用仅单击一个子jquery
所以我有下面的htmlJavascript 启用仅单击一个子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
<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
});