当我有:
$('#blah').on('click', function(){
$.ajax({
//blah
})
});
我工作得很好,上面的代码只发出一次ajax请求,但是当我有时:
$('body').on('click', '#blah', function(){
$.ajax({
//blah
})
});
这个发送ajax请求很多次,有时两次,有时更多。而且我必须使用第二个代码,因为#blah
对象本身是由另一个 ajax 请求添加到页面的,第一个代码不起作用。
问题是什么?我也在return false;
代码末尾使用过,但不起作用......
我将不胜感激任何帮助。
MORE INFO:
假设我有一个容器,容器内有按钮,容器本身已由早期的 ajax 请求加载,例如:
$('a[rel="show_product_detail"]').on('click', function(){
var product_id = $(this).attr('id');
$('.companycontent').html('');
$('.companycontent').addClass('members_content_loading');
$('.companycontent').load('modules/companies/companies_tabs/product_details.php?product_id='+ product_id', function() {
$('.companycontent').removeClass('members_content_loading');
});
return false;
});
现在在容器中我有另一个按钮导致容器的新内容,对于这些按钮我必须使用第二个代码,因为这些按钮是通过 ajax 加载的。现在通过单击容器内的按钮,ajax 请求发送多次(取决于容器重新加载的时间)。