我的页面上有一个JQuery UI菜单。我想改变选择项目时的默认行为,以便不执行链接,而是执行我的功能。以下作品:
$mymenu.find("a").click(function(){
return false;
});
但是,它会阻止菜单中的“选择”事件执行。如果我删除它,'select'事件会触发,例如
$mymenu.menu({
select: function(event, ui) {
alert(ui.item.text());
}
});
但是,event.preventDefault()
或event.stopPropagation()
都不会阻止链接被跟踪。以下内容阻止了链接的跟踪,但同样给出了“选择”事件未被触发的问题。
$mymenu.find("a").click(function(e){
e.stopPropagation();
});
我如何防止链接被跟踪但仍会触发“选择”事件?
答案 0 :(得分:1)
如果我正确地解释你的问题,也许这就是你所追求的:
将事件处理代码放在菜单项的click事件中,并在该click事件结束时调用preventDefault()。您不需要单击处理程序和select:handler。
$mymenu.find("a").click(function(event){
// event handling code - alert($(event.target).text());
event.preventDefault();
});
您想要在点击上运行的任何内容仍会运行,但不会跟踪该链接。