jquery предотвращает прокрутку страницы сверху - e.preventDefault(); и вернуть ложь; не работает?

Я пытаюсь предотвратить прокрутку страницы вверх. Кроме того, я хочу сделать это с помощью e.preventDefault(); или вернуть ложь; (таким образом, другие решения для тегов тела бесполезны), однако, похоже, они игнорируются.

(.Слайд-шоу, постепенное исчезновение и постепенное исчезновение работают нормально.)

однако страница прокручивается вверх после (я думаю) функции after: onAfter, как это предотвратить?

прокомментированный возврат false и e.preventDefault, где он не работает.

Заранее спасибо.

       if ($('.slideshow').length) {
    $('.slideshow').cycle({
        fx: 'scrollHorz',
        speed: 'fast',
        timeout: 0,
        prev: '#prev',
        next: '#next',
        nowrap: 1,
        before: onBefore,
        after: onAfter,
        pager: '#slide-pager ul',
        pagerAnchorBuilder: function (idx, slide) {
            // return selector string for existing anchor 

            return '#slide-pager ul li:eq(' + idx + ') a';
        },
        onPrevNextEvent: function (dir, id, el) {
            if (dir === true) {
                //alert('slide right');
                if (id >= 3) {
                    //alert(i);
                    $('#slide-pager_next').click();
                }
            }
            else {
                //alert('slide left');
                if (id >= 1) {
                    //alert(i);
                    $('#slide-pager_prev').click();
                    return false;
                }
            }
        }
    });
};

function onBefore() {
    //e.preventDefault(); // same thing as above
    $(".chapter-content .slideshow").fadeOut("fast");
    // return false; // prevent default click action from happening!
}
function onAfter() {
    // return false; // prevent default click action from happening!
    //e.preventDefault(); // same thing as above
    $(".chapter-content .slideshow").fadeIn("100");
    // return false; // prevent default click action from happening!
}

person Nicolaas van den Broek    schedule 05.07.2012    source источник
comment
Вы пытаетесь прокручивать, когда анимация включена?   -  person Barlas Apaydin    schedule 05.07.2012


Ответы (1)


я не видел вашу демонстрацию, я могу неправильно понять, но попробуйте это:

function onBefore() {
  if ( !$('.slideshow').is(':animated') ) {
    $(".chapter-content .slideshow").fadeOut("fast");
  }
}
function onAfter() {
  if ( !$('.slideshow').is(':animated') ) {
    $(".chapter-content .slideshow").fadeIn("100");
  }
}
person Barlas Apaydin    schedule 05.07.2012
comment
или поместите эти условия в событие клика - person Barlas Apaydin; 05.07.2012
comment
барлас. это не работает. прокрутка страниц вверх остается при использовании пейджера в слайд-шоу... Извините за плохое объяснение вопроса :) - person Nicolaas van den Broek; 05.07.2012
comment
Итак, вы хотите, чтобы .chapter-content .slideshow исчезло, пока ваш цикл/анимация включена? - person Barlas Apaydin; 05.07.2012
comment
barlas.. я хочу предотвратить прокрутку страницы вверх (что не является частью поведения ползунка) при использовании ползункового пейджера. то есть всякий раз, когда я выбираю номер слайда. страница будет прокручиваться вверх сразу после этого, а не просто оставаться на прокрутке страниц, где она находится. - person Nicolaas van den Broek; 06.07.2012