2012-04-02 1 views
0

как я могу изменить это запустить только один раз после того, как пользователь прокручивать вверхOnScroll сверху раз

(function() { 
    var previousScroll = 0; 

    $(window).scroll(function(){ 
     var currentScroll = $(this).scrollTop(); 
     if (currentScroll < previousScroll){ 
      alert('up'); 
     } 
     previousScroll = currentScroll; 
    }); 
}()); //run this anonymous function immediately 
+0

Вы имеете в виду пробег только один раз ??? –

+0

да извините за это –

+0

Что бы вы хотели сделать, нежели там, где есть предупреждение? Вы хотите найти где-нибудь еще, будет ли пользователь прокручиваться? –

ответ

1

, если вы хотите, чтобы пользователь уведомляется только один раз, то вы могли бы просто использовать логическое значение для отслеживания ли уведомления готово.

(function() { 
var previousScroll = 0; 
var isAlerted = false; 
$(window).scroll(function(){ 
    if(isAlerted) return;      
    var currentScroll = $(this).scrollTop(); 
    if (currentScroll < previousScroll){ 
     console.log('up'); 
     isAlerted = true; 
    } 
    previousScroll = currentScroll; 
}); 
})();​ 

Также обратите внимание на изменение в последней строке. Использовать самопроизвольную анонимную функцию должным образом как

(function(){})(); 
+0

thx он работает, но не работает, когда я меняю console.log ('up'); к моей функции –

+0

вы могли бы разместить образец кода в jsfiddle.net –

+0

http://jsfiddle.net/bT25A/ –

Смежные вопросы