Как вызвать ссылку (тег) двойным щелчком вместо одного клика? [Дубликат]

0

Есть ли способ сохранить все эффекты зависания, но вызвать ссылку тега (на другую страницу) только при двойном щелчке? Благодарю!

Любой чистый ответ на javascript? (нет jQuery)

  • 3
    Слышали о ondblclick ()? Легко: w3schools.com/jsref/event_ondblclick.asp
  • 0
    ааа !! Спасибо, парни! Я так много гуглил, но, думаю, у меня были совершенно неправильные ключевые слова
Показать ещё 2 комментария

3 ответа

3
Лучший ответ

Я пришел с этим (без 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();
    }

  }

jsfiddle

  • 0
    Хотя это может сработать, это не является оптимальным решением, поскольку здесь есть «магическое число» 500 в setTimeout - пользователь может настроить в своей системе, от которого промежуток времени между двумя щелчками считается двойным щелчком, и это решение делает не принимать это во внимание ...
  • 0
    Может быть, я пессимист, но почему бы не использовать ondblclick ?
Показать ещё 3 комментария
4

Я бы, конечно, не пошел бы против одного стандарта щелчка, но если это то, что вы пожелаете:

Вы можете найти ответ на этот вопрос здесь

Копирование из приведенного выше ответа:

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;
         }
     });
 });
  • 0
    Спасибо! это полезно! Потому что я хочу сохранить один клик для навигации по странице. и ссылка не является основной темой сайта, который я делаю.
  • 0
    Любая версия этого JavaScript? Я надеялся не использовать jQuery, но почему-то я не знаю, как объединить эти функции click, dbclick
Показать ещё 1 комментарий
0

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

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

Ещё вопросы

Сообщество Overcoder
Наверх
Меню