Пункт меню JQuery UI предотвращает поведение ссылок по умолчанию
У меня есть меню JQuery UI на моей странице. Я хочу изменить поведение по умолчанию, когда элемент выбран, чтобы вместо перехода по ссылке моя функция просто выполнялась. Следующие работы:
$mymenu.find("a").click(function(){
return false;
});
Тем не менее, он предотвращает выполнение события "select" в меню. Если я удаляю его, срабатывает событие "выбрать", что-то вроде
$mymenu.menu({
select: function(event, ui) {
alert(ui.item.text());
}
});
Тем не менее, ни event.preventDefault()
или же event.stopPropagation()
останавливает переход по ссылке. Следующее не позволяет перейти по ссылке, но дает мне ту же проблему, что событие select не вызывается.
$mymenu.find("a").click(function(e){
e.stopPropagation();
});
Как бы я мог запретить переход по ссылке, но при этом вызвать событие select?
1 ответ
Если я правильно интерпретирую ваш вопрос, возможно, это то, что вам нужно:
Поместите свой код обработки события в событие click для пункта меню и вызовите protectDefault() в конце этого события click. Вам не понадобится ни обработчик кликов, ни обработчик select:.
$mymenu.find("a").click(function(event){
// event handling code - alert($(event.target).text());
event.preventDefault();
});
Все, что вы хотите запустить по клику, все равно будет запущено, но по ссылке переходить не будут.