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

标签 jquery jquery-ui jquery-ui-menu

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

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

最佳答案

如果我正确解释你的问题,也许这就是你想要的:

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

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

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

关于JQuery UI 菜单项阻止默认链接行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17158729/

相关文章:

javascript - 使用 CarouFredSel 的 slider

javascript - 脚本如何在页脚库 jquery 和 angularjs 中显示加载时间和内存使用情况网页

jquery - 禁用对话框右上角的 'X' 按钮

jquery - 如何使用 jquery ui datepicker 设置当前日期

anchor 击区域内的jquery菜单复选框

php - 当 ajax 开始在后台运行时显示加载图像

javascript - 如何向 CSHTML 中的特定目标元素抛出自定义消息

jquery-ui - 使 jQuery UI 可拖放一次只接受一个可拖动

jquery - LI 标签内的 block 级元素导致 LI 标签比它的子内容高。这可以避免吗?

对话框内的 jquery 菜单不显示子菜单