2

我的页面上有一个 JQuery UI 菜单。我想更改选择项目时的默认行为,以便不跟随链接,而是执行我的函数。以下作品:

$mymenu.find("a").click(function(){
    return false;
});

但是,它会阻止执行菜单中的“选择”事件。如果我将其删除,则会触发“选择”事件,例如

$mymenu.menu({
    select: function(event, ui) {
        alert(ui.item.text());
    }
});

但是,既不也不event.preventDefault()阻止event.stopPropagation()链接被跟踪。以下内容阻止了链接被跟踪,但给了我同样的问题,即未触发“选择”事件。

 $mymenu.find("a").click(function(e){
     e.stopPropagation();
 });

我将如何防止链接被关注但仍触发“选择”事件?

4

1 回答 1

1

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

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

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

您想在点击时运行的任何内容仍然会运行,但不会跟随链接。

于 2013-06-18T00:13:03.170 回答