gpt4 book ai didi

javascript - 如果再次调用,函数中的 mouseEvent 会触发两次?

转载 作者:行者123 更新时间:2023-11-28 13:46:09 25 4
gpt4 key购买 nike

问题是我只想在触发 mouseevent 函数时触发一次,例如

 $(document).ready(function() {
$("#menu").click(function(){
$('#menu_div').show();
menu_function();
});


$("#menu_close").click(function(){
$('#menu_div').hide();
});
});

function menu_function(){
$(".select_li").live(
"click",
function() {
alert("test");
}
);
}

该示例有两个对象,菜单和菜单关闭;当按下菜单时,会显示 ui 框,然后运行 ​​menu_function ,这将触发警报测试消息。问题是,当单击 menu_close 并关闭框并再次打开它时,警报测试将触发两次。我观察到 div 框关闭和再次打开的时间与函数的触发时间相同,我该如何修复它?

如果我不想使用unbind,有没有更好的解决方案?

最佳答案

您的 menu_function() 不仅仅是触发警报测试消息 - 它正在向 DOM 中具有触发测试警报的“select_li”类的所有内容添加实时点击监听器。这意味着每次单击 #menu 时,您都会向 .select_li 添加另一个监听器 - 因此,如果您单击 #menu 10 次,则每次单击 .select_li 时应该有 10 个监听器。

如果您确实想在单击 #menu 时显示警报,则您的 menu_function() 应该如下所示:

function menu_function() {
alert("test");
}

关于javascript - 如果再次调用,函数中的 mouseEvent 会触发两次?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14263954/

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