gpt4 book ai didi

javascript - event.stopPropagation() 未结束 Javascript 中的冒泡

转载 作者:行者123 更新时间:2023-12-02 15:58:34 27 4
gpt4 key购买 nike

我开始学习这种冒泡在 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/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com