使用以下代码(在drupal中)
( function ($) {
Drupal.behaviors.auction_house = {
attach: function(context,settings) {
$(document).ready(function(){
// buy item animation
$(".buy_item_button").click(function() {
$(".slide_bags").fadeOut(222).fadeIn(222);
return false;
});
// datagrid
$('#auction_house_table').dataTable();
});
}
};
})(jQuery);
如果我点击,则会触发该事件,如果我再次点击该事件,该事件将被触发2次,然后是3次,然后是4次,依此类推。所以我们称之为'堆叠'。重要信息:包含链接的内容是附加的onclick函数,通过ajax加载。
这怎么可能发生?如何防止这种情况?
答案 0 :(得分:1)
我猜你是多次绑定'click'
事件(当加载ajax内容时)。您可以在再次绑定事件之前unbind
事件,或者在重新绑定之前检查事件是否已经绑定:
绑定事件前取消绑定:
$(".buy_item_button").unbind('click').click(function() {
//your code...
});
此外,请参阅 this link 以检查事件是否已绑定到元素。
但我认为最好的方法是将click
事件仅绑定到最新添加的内容。因此,不要将事件直接绑定到.buy_item_button
选择器;您可以选择新内容和find
.buy_item_button
班级的孩子:
$("#new-content").find(".buy_item_button").click(function() {
//your code...
});