我开始学习这种冒泡在 Javascript 中是如何工作的。现在我的问题是,我想我不完全理解它!我正在 HTML 中运行 onclick
(如下所示:
onclick="checkboxhit(<?php echo $allmail[$key]["mailid"]; ?>)"
),并且它正在运行 If 和 Else 语句。基本上我只是想检查何时和何时不复选框被单击。这是我正在使用的 JavaScript:
listofmailids = [];
function checkboxhit(mailid) {
if (listofmailids.indexOf(mailid) == -1) {
listofmailids.push(mailid);
$("#deletemail").css("color", "#474747");
event.stopPropagation()
}
else {
listofmailids.splice(listofmailids.indexOf(mailid), 1);
if (listofmailids.length == -1) {
$("#deletemail").css("color", "#A3A3A3");
}
event.stopPropagation()
}
}
然而,event.stopPropagation()
并没有停止 If 和 Else 语句的执行。我该如何解决这个问题?谢谢!
最佳答案
使用onclick
时,如果想要event
对象,需要显式传递
onclick="checkboxhit(<?= json_encode($allmail[$key]['mailid']) ?>, event)"
在你的函数中
function checkboxhit(mailid, e) {
e.stopPropagation();
// etc
json_encode()
将确保 $allmail[$key]['mailid']
值可以安全地用作 JavaScript 文本。
如果您想停止传播并阻止默认操作,您可以使用falsy返回值,如下所示
onclick="return checkboxhit(...)"
在你的函数中
return false;
关于javascript - event.stopPropagation() 未结束 Javascript 中的冒泡,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31395589/