在我的网页中,我必须捕获TAB键压力,然后模拟所涉及对象的mousedown事件。 我试过了:
$('*').keydown(function(e) {
var keyCode = e.keyCode || e.which;
if (keyCode == 9) {
var elementClicked = e.target.nodeName;
elementClicked.mousedown();
}
});
但错误
未捕获的TypeError:undefined不是函数
on elementClicked.mousedown();排出现。
如何模拟和调用涉及TAB压力的元素上的mousedown事件?
提前致谢
AM
答案 0 :(得分:1)
$(this).trigger('mousedown')
或仅$(this).click()
,这将触发绑定到该元素的任何事件。请注意,您应该执行*
...这对性能非常不利。
$(document).on('keydown.tab', '*', function(e){
if( e.keyCode == 9 ){
$(this).trigger('mousedown');
}
return false;
});
但你真的不知道TAB点击了哪个元素...
首先应该为所有元素提供属性tabindex
,然后才能在按Tab键时跟踪这些元素,因为它们具有焦点(首先点击它们或通过键盘聚焦):
$('body *').each(function(i){
this.setAttribute('tabindex',i);
});
h1
元素使用TAB模拟click
答案 1 :(得分:1)
elementClicked
是对象名称而不是对象 -
使用jquery选择对象:
$(elementClicked).mousedown()
答案 2 :(得分:0)
您可以尝试下面更新的代码:
$(document).on("keyup", function(e) {
var keyCode = e.keyCode || e.which;
if (keyCode == 9) {
var elementClicked = $(this);
elementClicked.trigger("mousedown");
}
});
希望这有帮助!