gpt4 book ai didi

javascript - 使用比单击监听器更广泛的监听器捕获 jQueryUI 菜单项上的焦点

转载 作者:行者123 更新时间:2023-12-03 06:21:46 25 4
gpt4 key购买 nike

我定义了一个 id 为 leftmenu 的 jQueryUI 菜单,并在其列表元素上定义了单击一项时的函数,如下所示:

$('#leftmenu>li').click(function () {
var clickedId = this.id;
$.ajax({
type: "POST",
cache: false,
url: "/Session/Index/",
success: function (result) {
if (result.length > 0)
{

performListItemAction(clickedId);
}
else
{

window.location.href = '/Home/Index/'
}
}
});
});

这工作正常,但现在我想更改它,以便我想以更通用的方式捕获该项目的焦点和选择,而不是单击菜单项,例如使用键盘。目前,我可以使用键盘上的向上和向下键浏览菜单,但内部代码不会被调用。我知道这是因为它只应该在 click 上发生,但是当我尝试 activatefocus 代替也点击

如何让它以更通用的方式执行与单击相同的行为,以捕获菜单项的选择和输入?

谢谢。

最佳答案

这应该在 select 事件中完成。这样它就可以捕获焦点键盘操作中的点击选择

示例:https://jsfiddle.net/Twisty/v671x6ns/

jQuery

$(function() {
$('#leftmenu').menu({
select: function(e, ui) {
var selectId = ui.item.attr("id");
$.ajax({
type: "POST",
cache: false,
url: "/Session/Index/",
success: function(result) {
if (result.length > 0) {
performListItemAction(selectId);
} else {
window.location.href = '/Home/Index/'
}
}
});
console.log(e.type + " event, ID: " + selectId);
}
});
});

关于javascript - 使用比单击监听器更广泛的监听器捕获 jQueryUI 菜单项上的焦点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38835893/

25 4 0