链接上的触发事件不起作用

时间:2016-01-16 20:14:38

标签: javascript jquery html click

大家好我正在构建一个库,例如我给一个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

3 个答案:

答案 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;
    }
}

https://jsfiddle.net/s8fk88ou/3/

答案 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>