gpt4 book ai didi

javascript - 首次单击后删除放置的 jquery 单击事件监听器

转载 作者:行者123 更新时间:2023-12-03 08:06:36 25 4
gpt4 key购买 nike

在页面上设置了一些简单的功能。最初,我想用一些显示叠加层的功能替换超链接点击的默认操作。

显示叠加层后,我想删除放置在超链接上的事件监听器,以便它恢复到以前的状态(我相信这里还有另一个事件监听器,我不想在删除我的事件监听器时删除这个事件监听器) )。覆盖层中有另一个按钮,单击该按钮时,应触发该按钮的初始功能。

我尝试过 .off() jquery 方法,但这似乎阻止了“.mmclose”按钮的工作。

不太确定我哪里出了问题..

// placing event listener on initial link
$("#utility_0_HyperLinkLogout").click(function() {
// removing event listener(?)
$("#utility_0_HyperLinkLogout").off("click");
// preventing default button behavior
event.preventDefault();
//overlay replacing original content
I62originalContent.hide();
$("#mmi62wrapper").fadeIn("slow", function() {
// new event listener placed on button within overlay (as callback)
$(".mmclose").click(function() {
//new button should now trigger original buttons original functionality?
$("#utility_0_HyperLinkLogout").trigger("click");
})
})
});

最佳答案

您可以使用 jQuery .one 方法附加一个仅执行一次的处理程序。您无需再担心删除此处理程序。

检查这个例子:

$(".myClass").click(function() {
this.innerText += "!";
});

$("#myId").one('click', function() {
this.innerText += "?";
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<button class="myClass" id="myId">Click me twice</button>

在这个例子中,点击按钮会不断添加“!”,而“?”仅添加一次。其他处理程序不受影响。

关于javascript - 首次单击后删除放置的 jquery 单击事件监听器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34355068/

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