JQuery UI菜单项阻止默认链接行为

时间:2013-06-18 00:02:41

标签: jquery jquery-ui jquery-ui-menu

我的页面上有一个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();
 });

我如何防止链接被跟踪但仍会触发“选择”事件?

1 个答案:

答案 0 :(得分:1)

如果我正确地解释你的问题,也许这就是你所追求的:

将事件处理代码放在菜单项的click事件中,并在该click事件结束时调用preventDefault()。您不需要单击处理程序和select:handler。

$mymenu.find("a").click(function(event){
    // event handling code - alert($(event.target).text());
    event.preventDefault();
});

您想要在点击上运行的任何内容仍会运行,但不会跟踪该链接。