2012-02-01 6 views
2

У меня есть следующая страница html. Почему предупреждение не работает при прокрутке мыши?jQuery scroll bind не работает

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> 
    <html lang="en"> 
    <head> 
    <script src="http://code.jquery.com/jquery-latest.js"></script> 


     <script> 
     $(window).scroll(function(){ 
       alert("scrolling"); 
      }); 
     </script> 
    </head> 
    <body> 

    </body> 
    </html> 

EDIT: он работает, когда страница имеет полосу прокрутки с правой стороны и когда прокрутка перемещает страницу вниз. Но я хочу, чтобы он работал на пустой странице, например.

EDIT2: Я изменил document.body в окно, но имел ту же проблему.

EDIT3: Итак, я пришел, чтобы привести, что я хочу, чтобы поймать колесо мыши событие

+1

Вы пробовали привязываться как к телу, так и к html? $ ("body, html") –

+0

Я пробовал, нет результата –

+0

Как вы должны прокручивать пустую страницу? % - ( –

ответ

4

Это не тело, а окно.
Однако я бы поставил его после того, как документ будет готов.
Вот рабочий код:

$(document).ready(function() 
    { 
     console.log('ready'); 
     $(window).scroll(function() 
     { 
      console.log('scroll'); 
     }); 
    }); 

В ответ на ваш редактировать 3
поймать событие колеса мыши с помощью JQuery mousewheel_plugin увидеть это example
Так что ваш код будет

<script src="http://code.jquery.com/jquery-latest.js"></script> 
<script type="text/javascript" src="jQuery_mousewheel_plugin.js"></script> 
<script> 

    var intOverallDelta = 0; 

    $(document).ready(function() 
    { 
     console.log('ready'); 
     $(document.body).mousewheel(function(objEvent, intDelta) 
     { 
      if (intDelta > 0) 
      { 
       intOverallDelta++; 
       console.log('up - (' + intOverallDelta + ')'); 
      } 
      else if (intDelta < 0) 
      { 
       intOverallDelta--; 
       console.log('down - (' + intOverallDelta + ')'); 
      } 
     }); 
    }); 

</script> 
+0

Это не работает на пустой странице. см. edit1 –

+0

Как вы должны прокручивать пустую страницу?% - ( –

+0

Я ответил вам на вопрос comment –

2

Попробуйте на окне

$(window).scroll(function(){ 
    alert("scrolling"); 
}); 

Прочитайте руководство: http://api.jquery.com/scroll/

+0

... и вот пример: http://jsfiddle.net/Dutgp/1/ – Niklas

+0

Удалить высоту: 1000 пикселей, стиль и этот пример не будут работать. См. Правки! –

1

Ваш селектор является неправильным, document.body ничего не будет соответствовать ...

+0

см. Правки –

+0

Это не так: document.body существует в jquery.Просто попробуйте '$ (document.body) .click (function() {console.log ('click');});' .. факт состоит в том, что для привязки прокрутки, как запрошено в этом вопросе, вам нужно использовать 'window' вместо –

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