防止父启动jQuery

时间:2013-11-24 17:03:37

标签: javascript jquery

我尝试通过点击liinput type=[checkbox]旁边的li来允许折叠和展开嵌套列表。但是选中该复选框会导致触发容器li,导致父li折叠。

this fiddle

解释更容易

我通过设置全局

解决了这个问题
window.checkbox_checked = true

this fiddle中显示,但我宁愿不使用全局。这样做有更干净的方法吗?我尝试使用event.stopImmediatePropagation()event.stopPropagation(),但都没有为我工作?

由于

更新

正如费利克斯·金所指出的那样,我的问题是将li包裹在div中,这已禁用event.stopPropagation() solution

1 个答案:

答案 0 :(得分:1)

只需检查node name内的click handler是否为UL,然后跳过该click event

event.target.nodeName

代码:

$('li.expandable').on('click', function (e) {

if(e.target.nodeName !== "INPUT")
{
    //Code goes here.
}
});

DEMONSTRATION