如何避免ajax调用相同的函数与.scroll(function(),如果我是点击另一个div与onclick



在这段代码中,你可以看到我有两个div标签,它们每个都不相同onclick="函数调用,问题是,当我点击其中一个,然后点击另一个。scroll(function()也从第一个点击函数,这个例子中只有警告,

<div class="first_div_class" onclick="firstFunction();">First Div</div>
<div class="second_div_class" onclick="secondFunction();">Second Div</div>
<div class="result"></div>
<script class="functions">
function firstFunction(){
var one = '<?php echo $someValueOne; ?>';
var two = '<?php echo $someValueTwo; ?>';                      
$.ajax({
type:'GET',
url:'getSomethingOne.php',
data: {
'SomethingOneInFirstFunction':one,
'SomethingTwoInFirstFunction':two
},

success:function(data){

$('.result').html(data);
},

});

$('.result').scroll(function(){

alert("Hello! to the first box!!");
});

}
function secondFunction(){

var one = '<?php echo $someValueOne; ?>';
var two = '<?php echo $someValueTwo; ?>';   

$.ajax({
type:'GET',
url:'getSomethingTwo.php',
data: {
'SomethingOneInSecondFunction':one,
'SomethingTwoInSecondFunction':two
},

success:function(data){

$('.result').html(data);
},

});

$('.result').scroll(function(){

alert("Hello! to the second box!!");
});

}
</script>

即使你将尝试没有ajax调用,只有一个点击函数,它将继续第一个点击函数滚动调用,

我怎样才能停止这个?

您应该将侦听器设置为一次性使用。问题是,你在每次调用函数时都为同一个HTML元素设置了一个新的滚动处理程序,并且它们永远不会被删除。

$('.result').one('scroll', function() {...})

i被添加到每个函数的开头

$(".result").unbind();

谢谢epascarello

相关内容

最新更新