jQuery Полноэкранный фон движется, когда в меню - PullRequest
0 голосов
/ 07 августа 2011

В настоящее время я создаю WP-тему полноэкранной галереи, и я заметил, что при попытке выбрать изображение для просмотра фона и прокрутки мышью вверх и вниз, это работает, если изображение быловыбрано, но я пытаюсь создать область без прокрутки (меню изображений), чтобы при выборе нового изображения для просмотра фона оно не прыгало.

Это мое global.js.Я замечаю, что если я добавлю return false;, он перестанет прокручиваться, но я потерял изменение изображения, поэтому я удалил его.

 $(document).ready(function() {

    $(".dropgallery a, #fp_thumbtoggle").removeAttr("title");

    $('#fp_thumbtoggle, .dropgallery img').click(function() {
        $('#fp_thumbtoggle').toggleClass("active");

        if ($('#fp_thumbtoggle').hasClass('active')){
            $('#fp_thumbtoggle').animate({top:'65px'});
        }else{
            $('#fp_thumbtoggle').animate({top:'185px'});
        }
        $('.dropgallery').slideToggle('500');
        return false;
    });

 });

Здесь вы можете найти мои gallery.js .

1 Ответ

0 голосов
/ 08 августа 2011

TL; DR

$('selector').click(function (e) {
    e.stopPropagation();
});

Пояснение:

Обработчики событий (будь то jQuery или необработанный JavaScript) принимают один параметр - событие. У этих объектов событий есть все виды изящных вещей, которые делают их полезными, но многие из них зависят от браузера. К счастью, stopPropagation универсален.

В вашем случае вы, вероятно, испытываете проблемы с событиями, переполняющими стек. Скажем, у вас есть что-то вроде этого:

  • документ (с обработчиком кликов)
    • div (с обработчиком кликов)
      • div (с обработчиком клика)

Событие будет сначала инициировано в нижнем элементе div, затем, когда выполнение завершится, оно всплывет. Каждый слушатель получит уведомление, пока не будет больше слушателей.

Чтобы остановить это всплывающее сообщение, JavaScript (не jQuery) дал нам метод stopPropagation для этого объекта события. Вызов этого скажет браузеру отменить пузырьковый процесс.

...