2015-12-22 4 views
0

Я использую навигацию с полноэкранным наложением, запускаемым кнопкой меню в фиксированном положении в верхней части экрана. Это означает, что оверлей можно открыть, когда браузер прокручивается в нижней части страницы. По умолчанию сценарий заставит браузер вернуться в верхнюю часть страницы при нажатии кнопки меню. Поэтому, чтобы этого не произошло, я добавил «return: false» в функцию щелчка.Предотвращение возврата ссылки false с помощью JQuery

$(document).ready(function() { 
    $('#trigger-overlay').click(function() { 
    $('section.header header h1').toggleClass('change'); 
    $('section.header header h2').toggleClass('change'); 
    return false; 
    }); 
}); 

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

$(document).ready(function() { 
    $('.overlay li a').click(function() { 
    return true; 
    }); 
}); 

ответ

0

Одним из возможных подходов является проверка или нет на самом деле щелкнул элемент является «белый список» ссылка (или его потомок); если нет, просто не делайте return false. Вот как это можно сделать:

$('#trigger-overlay').click(function(evt) { 
    $('section.header header h1').toggleClass('change'); 
    $('section.header header h2').toggleClass('change'); 

    var $target = $(evt.target); 
    if ($target.closest('.overlay').length === 0) { // not inside overlay 
    return false; 
    } 
}); 
+0

Это не совсем работа, так что сейчас я использовал это: '\t \t \t $ (документ) .ready (функция() { \t \t \t \t $ . ("нав а") нажмите (функция() { \t \t \t \t $ ("HTML, тело") scrollTop (0). \t \t \t \t}); ' – Andrew

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