Скрипты Jquery перестают работать после того, как бесконечная прокрутка загружает новые страницы на tumblr

У меня запущен плагин бесконечной прокрутки Пола Айриша, и у меня также есть скрипт, который показывает выпадающий элемент div в моих отдельных сообщениях, когда я наводил на них курсор, однако выпадающий список перепутался после того, как бесконечная прокрутка загрузила первый набор сообщений.

Мой выпадающий код выглядит так:

<script type="text/javascript">
    $(function() {
        $('.entry').hover(function() { 
            $(this).find('.notes').slideToggle(125); 
        });
    });        
</script>

Я знаю, что должен вызывать его обратно после загрузки бесконечной прокрутки, поэтому я добавил его в свой плагин бесконечной прокрутки следующим образом:

    <script type="text/javascript">
        $(document).ready(function(){
            $('#content').infinitescroll({ 
                navSelector : "div.navigation",
                nextSelector : ".navigation a#next",
                itemSelector : ".entry", 
                bufferPx : 50,
                animate  : 'true',
                extraScrollPx: 150,    
                loading: {
                    finished: undefined,
                    finishedMsg: "Congratulations, you've reached the end of the internet.",
                    img: "http://static.tumblr.com/8je4mhi/aLbmpfjp5/1.gif",
                    msg: null,
                    msgText: "",
                    selector: null,
                    speed: 'slow',
                    start: undefined
                },
            },function(newElements){                    
                  $('.entry').hover(function() { 
                      $(this).find('.notes').slideToggle(125); 
                   });
            });
        });
    </script>

Но это мешает. Это делает первый набор сообщений видимым по умолчанию и скрытым при наведении курсора, а следующий набор сообщений после этого скрывается, но не отображается при переключении.

У меня есть пример сайта, если это поможет: http://test-theme-one.tumblr.com

И моя полная html-разметка здесь, если это поможет: http://pastebin.com/c1N37r6U

Возможно, кто-то может указать, где я ошибся?


person dsherv    schedule 04.07.2013    source источник


Ответы (1)


Вы захотите использовать функцию jQuery on().

Просто измените исходный код на:

$('#content').on('hover', '.entry', function () {
  $(this).find('.notes').slideToggle(125);
});

... и удалите функцию наведения в обратном вызове бесконечной прокрутки.

Дополнительную информацию можно найти здесь: http://api.jquery.com/on/

person graygilmore    schedule 04.07.2013
comment
Сам бы я до этого не додумался, вы прекрасны! Большое спасибо за помощь, Грей! - person dsherv; 05.07.2013