Есть ли способ сохранить все эффекты зависания, но вызвать ссылку тега (на другую страницу) только при двойном щелчке? Благодарю!
Любой чистый ответ на javascript? (нет jQuery)
Я пришел с этим (без jQuery, используя только обработчик события onclick):
var clicked=false;
var el = document.getElementById('link');
var maxClicksDelay = 500; // in milliseconds
el.onclick = function(e) {
if(!clicked) {
clicked = true;
setTimeout(function() { clicked = false}, maxClicksDelay );
e.preventDefault();
}
}
500
в setTimeout
- пользователь может настроить в своей системе, от которого промежуток времени между двумя щелчками считается двойным щелчком, и это решение делает не принимать это во внимание ...
ondblclick
?
Я бы, конечно, не пошел бы против одного стандарта щелчка, но если это то, что вы пожелаете:
Вы можете найти ответ на этот вопрос здесь
Копирование из приведенного выше ответа:
HTML:
<a id='golink' href='gosomewhere.html'>Go Somewhere</a>
JavaScript с использованием jQuery:
jQuery(function($) {
$('#golink').click(function() {
return false;
}).dblclick(function() {
window.location = this.href;
return false;
}).keydown(function(event) {
switch (event.which) {
case 13: // Enter
case 32: // Space
window.location = this.href;
return false;
}
});
});
Я бы предложил добавить атрибут для обработки ссылок с помощью опции двойного щелчка.
<a href='http://...' dblclick>Link</a>
^^^^^^^^
В конце вашего html-документа добавьте эти строки, чтобы найти привязки с определенным атрибутом dblclick:
<script type='text/javascript'>
$(function(){
$('a[dblclick]').click(function(e){
return false; // disable single click
}).dblclick(function(e){
window.location = this.href; // on double click go to the URL from href value
})
})
</script>