クリックしてフローティングメニューを開くことができるリンクの列を持つアイテムのテーブルがあります。また、ajaxリクエストを実行し、結果を並べ替えるサイドバーリンクもあります(テーブルに新しいテーブルが再入力されます)。テーブルの結果がソートされていない場合(ajax呼び出しによって再入力されていない場合)、リンクは正常に機能します。ただし、結果を並べ替えてajaxリクエストを実行すると、テーブル内のリンクが機能しなくなります。
テーブルリンク内のクリックイベントをどのように保持できるのか疑問に思いましたか?jQueryの.on(selector、eventhandler)がこれを処理すると思いましたが、私の状況ではそうではないようです。
これは、テーブルリンクのクリックイベントに対して現在持っているものです。
$('.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');
};