大家好我正在构建一个库,例如我给一个html元素的属性
<a href="https://google.com" shc="27">
logout
像这样一个shc =&#34; 27&#34;这意味着当键盘上的键27(ESC)被点击时,它将触发链接上的点击,但由于某种原因它拒绝点击它。 这是我的完整代码:
$(document).on("keydown", function(e) {
console.log(e.which);
checkElementType(e.which);
});
function checkElementType(shortcutKey){
var element = $("[shc="+shortcutKey+"]");
var elementType = element.prop('nodeName');
switch(elementType){
case 'A':
console.log(element);
console.log('click the link');
element.trigger('click');
break;
}
}
这里是小提琴:Fiddle
答案 0 :(得分:1)
将element.trigger('click');
更改为element[0].click()
答案 1 :(得分:0)
我甚至不知道我改变了什么但它有效
<html>
<body>
<a href="http://google.com" class="shortcut" shc="27">
logout
</a>
</body>
</html>
$(document).on("keydown", function(e) {
console.log(e.which);
checkElementType(e.which);
});
function checkElementType(shortcutKey){
var element = $("[shc="+shortcutKey+"]");
var elementType = element.prop('nodeName');
switch(elementType){
case 'A':
element.trigger('click');
console.log(element);
console.log('click the link');
break;
}
}
答案 2 :(得分:0)
您可以使用window.location.href
属性根据元素的href
属性打开链接:
window.location.href = element.attr('href');
希望这有帮助。
$(document).on("keydown", function(e) {
console.log(e.which);
checkElementType(e.which);
});
function checkElementType(shortcutKey){
var element = $("[shc="+shortcutKey+"]");
var elementType = element.prop('nodeName');
switch(elementType){
case 'A':
console.log(element);
console.log('click the link');
window.location.href = element.attr('href');
//Or
//element[0].click();
//Or
//element[0].trigger('click');
break;
}
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<a href="http://google.com" class="shortcut" shc="27">logout</a>