在这段代码中,你可以看到我有两个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