Проблемы с табуляции при использовании return false на href = "#" в FireFox - PullRequest
0 голосов
/ 15 марта 2011

Народ переполнения стека,

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

Например:

<a href="#" class="inline helpTrigger cursor">Why do we ask for this?</a>

При нажатии или нажатии этой ссылки рядом с текстом появляется всплывающая подсказка. Так как этот href имеет значение ("#"), я должен написать функцию (как показано ниже), чтобы остановить "прыжок" страницы вверх:

$('a[href="#"]').bind('click keypress', function(event){
    return false;
});

Это работает для большинства браузеров, но FireFox застревает при переходе по вкладкам и не перемещается мимо этого элемента. Есть ли лучший способ сделать это, или это известная проблема FF?

Я попытался оставить href полностью пустым, но это не является семантически правильным или не работает в IE.

Любая помощь будет высоко ценится. Спасибо

Ответы [ 3 ]

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

Вы всегда можете проверить, какая клавиша была нажата, и продолжить соответственно?

 var code = (event.keyCode ? event.keyCode : event.which);
 if(code == 9) {
   //Do something
 }
1 голос
/ 15 марта 2011

На самом деле Firefox верен. Он не должен переходить к следующему элементу, потому что событие нажатия клавиши блокирует клавишу Tab. Удалите нажатие клавиши, чтобы браузер применил обработку события по умолчанию для события.

$('a[href="#"]').bind('click', function(event){
    return false;
});
0 голосов
/ 15 марта 2011

применяет event.preventDefault (); решает вашу проблему.

...