首先,我做了我的家庭作业,我已经搜索了谷歌并使用了evt.stopPropagation();
和unbind
方法,但没有解决我的问题......。
这是我的情况:
想象一下,我有一个带有一些链接的左侧边栏,单击每个链接时,中间的 col 将由 ajax 重新加载,其中包含如下代码:
<script>
$('.leftsidebar a').on('click', function(){
var page = $(this).attr('class')
$('#middleCol').load('loader.php?page='+ page);
});
</script>
所以每次点击左侧栏一个标签,中间的col会加载一个标签class
.php,这很好。
现在在我正在加载的页面中,在页面的末尾我有一些 javascript,例如,如果它loader.php?page=test
在test
页面中加载,我有一些新的 jQuery 行,例如:
<script>
$('#blah').on('click', function(){
$.ajax({
type: 'POST',
url: 'server.php',
success: function(response){
//blah
}
});
});
</script>
现在的问题是,当我第一次通过单击左侧栏一个标签来加载测试页面时,它工作得很好,单击时#blah
只有一个请求将被发送到server.php
,但是当我从左侧栏单击另一个a
时,然后回来到test
,现在如果我点击blah
,ajax请求将被发送两次server.php
,以此类推......,如果我再试一次,请求将被发送3次!
我怎样才能防止这种行为?解决办法是什么?
我很感激帮助。