en este código puede ver que tengo dos etiquetas div y cada una de ellas no tiene la misma llamada a la función onclick="", el problema es cuando hago clic en una de ellas y luego hago clic en otra .scroll(function( ) también funciona desde la primera función en la que se hizo clic, este ejemplo solo con alerta,
<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>incluso si lo intentará sin la llamada ajax y solo con la función de clic, continuará la primera llamada de desplazamiento de la función en la que se hizo clic,
¿Cómo puedo detener esto?...
Debe configurar su oyente para un uso único . El problema es que está configurando un nuevo controlador de desplazamiento para el mismo elemento HTML en cada llamada de su función y nunca se eliminan.
$('.result').one('scroll', function() {...})me agregaron al comienzo de cada función
$(".result").unbind();gracias epascarello