gpt4 book ai didi

javascript - Ajax 破坏 .on ('click' ,事件处理程序)

转载 作者:行者123 更新时间:2023-11-28 21:00:19 25 4
gpt4 key购买 nike

我有一个项目表,其中有一列链接,单击这些链接可以打开 float 菜单。我还有一个侧边栏链接,它将执行 ajax 请求并对结果进行排序(它会使用新表重新填充表)。当表结果尚未排序(由 ajax 调用重新填充)时,链接可以正常工作。但是,当我对结果进行排序并执行 ajax 请求时,表中的链接不再起作用。

我想知道如何保留表链接中的点击事件?我认为 jQuery 的 .on(selector, eventhandler) 可以解决这个问题,但在我的情况下似乎并非如此。

enter image description here

这是我目前对表格链接的点击事件的了解:

  $('.addSet').on('click', function(event) {
event.stopPropagation();
return menuShow(this);
});

$('.addSetMenu input, .addSetMenu select, .addSetMenu').on('click', function(event) {
return event.stopPropagation();
});

menuShow = function(menuParent) {
var menu, parentLeft, parentOffset, parentTop;
menu = $(menuParent).siblings('.addSetMenu');
parentOffset = $(menuParent).offset();
parentTop = parentOffset.top;
parentLeft = parentOffset.left;
$(menu).css({
'top': parentTop + 20,
'left': parentLeft - 160
});
resetMenu();
return $(menu).toggleClass('hide');
};

$('html, .setCancelBtn').on('click', function() {
return resetMenu();
});

resetMenu = function() {
var menu;
menu = $('.addSetMenu input[type=text]');
$('.addSetMenu select').val('default');
$(menu).addClass('hide');
$(menu).val('');
return $('.addSetMenu').addClass('hide');
};

最佳答案

当您的表被重新填充时,这些链接对应的 DOM 节点将被删除。他们所有的事件处理程序也是如此。您应该 Hook 某些父元素,例如您的表格。从那里您可以捕获传播的事件。

$('table-selector').on('click', 'urlSelector', function(event) {
//handler code
})

请参阅此处的“直接和委托(delegate)事件”:http://api.jquery.com/on/

关于javascript - Ajax 破坏 .on ('click' ,事件处理程序),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11215559/

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