gpt4 book ai didi

javascript - 如何删除所有 jQuery 事件(或者只是不重新初始化两次)

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

我正在使用 AJAX 构建一个网页。它可以设置一个div,一些按钮,并添加点击事件。其中一个按钮只是退出该“屏幕”并将用户带回到他们原来的位置。那么,用户可以再次重建同一个 div,并重新设置相同的点击事件。

每次发生这种情况时,点击事件都会比以前多注册一次。所以看来我是通过一遍又一遍地重新初始化相同的代码来创建多个点击事件。

这是多次设置的代码的编辑版本(如果用户选择以这种方式导航)。

function StartClassViewer(class_id)
{

$.post("viewer.php", {
_open_selected_class : 1,
_class_id : class_id
}, function(data)
{
$("#content").html(data);

// ===================
// Init. Exit/Menu Button
// ===================
$("#viewer_go_back").click(function()
{
InitClassViewer();
// THIS FUNCTION IS WHERE USER CAN BACK OUT OF PAGE
});

// ==================
// Init. NEXT Button
// ==================
$("#viewer_next_page").click(function()
{

// EDITED OUT; THIS CLICK EVENT GETS REGISTERED EACH TIME THIS FUNCTION IS RECREATED (WHEN USER COMES BACK TO THIS SECTION OF PAGE) ADDING TO PREVIOUS INITIALIZES
});

});

});

现在我尝试使用 .unbind().off()退出中的方法function关闭所有已注册的事件,但这似乎不起作用。有办法解决这个问题吗? }

最佳答案

如果这两个事件绑定(bind)的元素没有被替换,则不需要每次都重新绑定(bind)它们。

$(document).ready(function(){
$("#viewer_go_back").click(function () {
InitClassViewer();
...
});

// ==================
// Init. NEXT Button
// ==================
$("#viewer_next_page").click(function () {...});
});

function StartClassViewer(class_id) {...}

关于javascript - 如何删除所有 jQuery 事件(或者只是不重新初始化两次),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23788234/

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