Обработчик кликов JQuery prepend

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

В основном это так.

<input type="button" value="Click me" onclick="alert ('hello')" />

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

Спасибо

Джон


person John    schedule 12.08.2009    source источник


Ответы (1)


Я думаю, в этом случае вы захотите поиграть с bind / unbind - см. http://docs.jquery.com/Events/unbind#typefn

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

Вероятно, вам также придется работать с Event.preventDefault (http://docs.jquery.com/Events/jQuery.Event), чтобы подавить поведение щелчка по умолчанию, если оно вам не нужно.

Вы бы использовали что-то вроде:

$("a").bind("click", function(event){
 if ($("#helpcheckbox").attr('checked')
 {
  event.preventDefault();
  // do something
 }
});

Без дополнительного кода трудно быть более точным.

person Niko    schedule 12.08.2009