Остановка onClick для возврата страницы вверху страницы после событий jQuery - PullRequest
0 голосов
/ 28 марта 2011

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

Вот мой JS:

$(document).ready(function(){
    $("a.tab").click(function () {
        $(".active").removeClass("active");
        $(this).addClass("active");
        $(".inside ul").fadeOut();
        $(".inside ul").fadeIn();
        var content_show = $(this).attr("title");
        return false;
        e.preventDefault();
    });
    $("a.tab, h4").FontEffect({
        outline: true
    })
});

Что я делаю не так?

UPDATE:

Спасибо за помощь. Теперь у меня есть следующее, хотя оно все еще не работает:

$(document).ready(function(){
        $("a.tab").click(function(e) {
            e.preventDefault();
            $(".active").removeClass("active");
            $(this).addClass("active");
            $(".inside ul").fadeOut();
            $(".inside ul").fadeIn();
            var content_show = $(this).attr("title");
            return false;
        });
        //$("a.tab, h4").FontEffect({
        //  outline: true
    //  })
    });

ЯКОРЬ TAG:

<a href="#" title="content_1" class="tab active">New Videos</a>

VIEWABLE

Ответы [ 3 ]

1 голос
/ 28 марта 2011

Попробуйте:

 $("a.tab").click(function (e) {

В коде вы пропускаете event argument variable, который в этом случае будет e.

Если вы используете метод warnDefault (), вам нет необходимости использовать return false.

онлайн демо: http://jsfiddle.net/dcFT7/

ОБНОВЛЕНИЕ

Прыжок при прокрутке вызван не щелчком по ссылке, а потому, что когда ul скрыт $(".inside ul").fadeOut() высота страницы уменьшается, и браузер прокручивается вверх.

Это можно исправить с помощью .animate({ opacity: 0 }, 500), чтобы эффект fadeOut не скрывался.

$("a.tab").click(function (e) {
    ...
    $(".inside ul").animate({opacity:0},500);
    $(".inside ul").fadeIn();
    ...
    e.preventDefault();
});
1 голос
/ 28 марта 2011

проблема в том, что вы возвращаетесь, прежде чем предотвратить действие по умолчанию (e.preventDefault();), попробуйте это:

    $("a.tab").click(function (e) {
        e.preventDefault();
        $(".active").removeClass("active");
        $(this).addClass("active");
        $(".inside ul").fadeOut();
        $(".inside ul").fadeIn();
        var content_show = $(this).attr("title");
        return false;
    });

и на тегах привязки убедитесь, что href имеет вид:

href='javascript:void(0);'
0 голосов
/ 28 марта 2011

Может быть так просто, как "e.preventDefault ();" быть на неправильной линии?

$(document).ready(function(){
        $("a.tab").click(function () {
            e.preventDefault();
            $(".active").removeClass("active");
            $(this).addClass("active");
            $(".inside ul").fadeOut();
            $(".inside ul").fadeIn();
            var content_show = $(this).attr("title");
            return false;

        });
        $("a.tab, h4").FontEffect({
            outline: true
        })
    });
...