DA.*_*DA. 10 jquery focus click
我有这个示例代码:
$myTrigger
.click(function(e){
alert('click');
})
.focus(function(e){
alert('focus');
$(this).click()
})
Run Code Online (Sandbox Code Playgroud)
目的是当我点击$ myTrigger时我想要发生一些事情.另一方面,如果你通过键盘选中它(即焦点),我想要完全相同的事情发生,所以我要求它点击.
问题是,如果我点击它,它也会集中注意力.所以这两个警报都会消失.
有没有办法防止焦点事件在点击时熄灭?
更新:
Ajm的评论让我觉得我可能会问错了.
问题:点击事件是否总是在javascript(和/或jQuery中)中引发焦点?我是否可以假设每当我想要用鼠标单击并用键盘进行Tabed-in时,focus()事件都会同时处理?
或者它是否依赖于我附加事件的特定元素?(在这种情况下,$ myObject恰好是一个锚标记(链接).
Nic*_*ver 13
jQuery有一个内置的功能,没有使用所有经常调用的功能 .one()
$mytrigger.one('click focus', function() { alert("event"); });
Run Code Online (Sandbox Code Playgroud)
这只会触发一次,或者如果你想要,你可以重新绑定.
要触发TAB焦点的click()(并且当焦点来自鼠标单击时阻止click()被触发两次),我执行了以下操作:
$('#item').mousedown(function(){
$(this).data("mouseDown", true);
});
$('#item').mouseup(function(){
$(this).removeData("mouseDown");
});
$('#item').focus(function(){
if (!$(this).data("mouseDown"))
$(this).click();
});
Run Code Online (Sandbox Code Playgroud)
这对你有用吗?