gpt4 book ai didi

javascript - 在 jQuery 中检测非命名空间事件

转载 作者:行者123 更新时间:2023-12-03 04:24:32 26 4
gpt4 key购买 nike

我正在尝试使用 jQuery 的 on 仅检测未命名空间的事件

我尝试按如下方式检查 on 回调中的命名空间,但它始终未定义:

$(".selector").on(
"click",
function (e) {
console.log(e.namespace); // Undefined, not "mynamespace"
}
);

$(".selector").trigger("click.mynamespace");

我还了解到,您可以将“.$”附加到事件名称以排除任何命名空间,但这似乎仅适用于 trigger 内,而不适用于 on.即使事件是命名空间的,以下内容也会运行:

$(".selector").on(
"click.$",
function (e) {
// runs even when triggered with a namespace
}
);

我不确定从哪里开始,因为当我记录事件对象时,找不到命名空间。

提前致谢!

最佳答案

尝试通过handleObj访问它。

HTML:

<div class="selector">
BOX
</div>
<button onclick="clickWithNamespace()">with ns</button>
<button onclick="clickWithoutNamespace()">without ns</button>

JS:

$(".selector").on(
"click.mynamespace",
manageClick
);
$(".selector").on(
"click",
manageClick
);
function manageClick(event) {
console.log(event.handleObj.namespace);
$(".selector").text(event.handleObj.namespace);
}

function clickWithNamespace() {
$(".selector").trigger("click.mynamespace");
}


function clickWithoutNamespace() {
$(".selector").trigger("click");
}

https://jsfiddle.net/j52rmxrs/15/

关于javascript - 在 jQuery 中检测非命名空间事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43793173/

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