我创建了一个复选框并将其置于myElement上。这是我的代码。
var myCheckBox = document.createElement("input");
myCheckBox.setAttribute("type", "checkbox");
myCheckBox.innerHTML = "";
myCheckBox.setAttribute("id", "myID");
myCheckBox.onchange = CheckBoxChange;
myCheckBox.setAttribute("value", title);
myEle.insertBefore(myCheckBox, myEle.firstChild);
除了myEle之外,还有一些事情正在发生。因此,当check / Unckeck复选框时,paraent元素事件也很激烈。如何克服这一点。
我在这里尝试的是
function CheckBoxChange(e){
e.stopPropagation();
}
但是在CheckBoxChange
触发到达之前,myEle
的事件变得非常激烈。如何将该事件限制为myEle
,而不是checkbox
。
谢谢你的帮助。
答案 0 :(得分:2)
当您点击导致click
事件和change
事件的复选框时,这两个事件都会冒泡到容器。
在您的代码中,您停止传播change
事件,而不是click
事件。我猜你的父myEle
有一个click
处理程序来触发你提到的排序。
如果您更改复选框以使用click
处理程序而非change
处理程序,其行为应符合您的要求,如下所示:http://jsfiddle.net/wqdcd41p/。 (请注意,即使您通过键盘选中/取消选中复选框,仍会触发click
事件。)