семантически правильный триггер jQuery - PullRequest
1 голос
/ 18 января 2011

При разработке с использованием jQuery я часто обращаюсь к использованию href = '#' id = 'myTrigger' в качестве триггера для события, в котором я объединяюсь с return false, чтобы остановить его фактическое использование в качестве гиперссылки.Всякий раз, когда я размещал здесь код, некоторые из наиболее опытных людей использовали меня для использования гиперссылки в качестве триггера.Должен ли я использовать input type = "button" или просто дать любому элементу идентификатор и использовать его в качестве триггера?

Каков наилучший метод для триггеров jQuery?

Ответы [ 3 ]

1 голос
/ 18 января 2011

Я обычно делаю что-то вроде:

<div id=myTrigger'>Click Me</div>

с:

$('#myTrigger').click( function() { /* do stuff */ })

... тогда вам не понадобится return false, чтобы прекратить стрельбу, потому что у меня были проблемы в прошлом; если вы щелкнете по нему до запуска JavaScript, он все равно сработает, например. Этот способ также кажется мне «правильным», но есть и другие способы сделать это.

Конечно, вы можете использовать практически все, что угодно, чтобы щелкнуть мышью; div, span, img, button и т. д. - я почти никогда не использую submit, всегда кнопка, как описано выше. Просто используйте то, что лучше всего в то время ...

1 голос
/ 18 января 2011

Это зависит от того, что вы делаете, и каково поведение элемента по умолчанию.

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

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

Чтобы остановить поведение ссылки по умолчанию, вы можете использовать метод preventDefault.Пример:

$('a#info').click(function(e){
  alert('info');
  e.preventDefault();
});

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

<div class="button">Eat me</div>

$('.button').click(function(){ alert('Eaten.'); });
0 голосов
/ 18 января 2011

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

...