我的页面上有一个 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/