2013-07-10 4 views
0

Если у меня есть ссылка и вы хотите связать комбинацию клавиш, как мне это сделать? Это не работает:Making Mousetrap нажмите ссылку

<a id="next" href="/next/page">Next page</a> 
<script src="mousetrap.js"></script> 
<script> 
    Mousetrap.bind("n", function() { 
    document.getElementById("next").click(); 
    }); 
</script> 

ответ

0

Есть несколько причин, почему я считаю, что ваш код не работает, и я не являюсь экспертом JS; Я только говорю это по моему малому опыту.

  • Вы предполагаете, что для тега привязки определена функция OnClick. Даже если это так, вы не определили, что происходит в этой функции onclick.

  • вы должны использовать внешнюю функцию для достижения того же; так эффективно иметь привязывающий тег, который может использовать клик, и функцию, которая также выводит пользователя на нужную страницу, когда пользователь нажимает «N».

Я попытался вдуматься в небольшое решение; пожалуйста, посмотрите ниже и посмотрите, сможете ли вы работать там, где вы ошибаетесь. Я позволю еще одному опыту с JS рассказать вам, что именно неправильно и почему он не работает.

<html> 
<head> 
<title>mouse trap test</title> 
</head> 
<body> 
    <a id="next" href="next/page">Next page</a> 
<script src="mousetrap.js"></script> 
<script> 

function GoToLocation(url) 
    { 
    //window.location = "http://www.stackoverflow.com"; 
    window.location = url; 
    } 

    Mousetrap.bind("n", function() { 
    //alert('N pressed' + document.getElementById("next").href); 
    //document.getElementById("next").click(); 
    GoToLocation(document.getElementById("next").href); 
    }); 


</script> 
</body> 
</html> 

Я надеюсь, что это поможет.

0

Есть ли какая-то конкретная причина, по которой вам нужно нажать на ссылку? Будет ли что-то вроде этого работать вместо вас?

Mousetrap.bind("n", function() { 
    window.location.href = "/next/page"; //Or document.getElementById('next').href as in Robert's response. 
}); 

Кроме того, это может помочь: How do I programmatically click on an element in JavaScript?