Отключение ссылок на остановку дважды щелкает в JQuery

Я прошел то же и нашел, что все бесплатные опции не были очень хороши. Похож Вы будете писать свое собственное. Мне было бы интересно видеть, есть ли у кого-то свободная/дешевая опция, которая работает

36
задан cloudhead 5 November 2009 в 16:16
поделиться

7 ответов

Вот что я бы попробовал:

$("a.button").one("click", function() {
    $(this).click(function () { return false; });
});

Свяжите все ссылки с помощью класса "button". Запустите анонимную функцию только один раз (отсюда «один»), которая повторно связывает ссылку, чтобы вернуть false.

Если вы хотите, чтобы она больше походила на то, что у вас есть, попробуйте следующее:

$("a.button").click(function() { $(this).attr("disabled", "disabled"); });
$(document).click(function(evt) {
     if ($(evt.target).is("a[disabled]"))
          return false;
});
69
ответ дан 27 November 2019 в 05:16
поделиться
$("a.button").bind('click', function() { $(this).attr("disabled", "disabled"); });
$("a[disabled]").live('click', function() { return false; });

Так и есть. Первая строка привязывает ко всем a-элементам с кнопкой класса функцию, которая устанавливает (кстати, недопустимый для a-элементов) атрибут disabled в disabled.

Вторая функция использует повторную привязку события jQuery в реальном времени для привязки функции «отключения» ко всем будущим экземплярам -элементы, у которых отключены атрибуты и атрибуты отключены

Проверьте документацию jQuery Event для получения более подробной информации о двух используемых функциях, если вы хотите

1
ответ дан 27 November 2019 в 05:16
поделиться

События привязаны только к document.ready, вы должны обработать это с помощью события .live:

$("a.button").live("click", function() { $(this).attr("disabled", "disabled"); });
$("a[disabled]").live("click", function() { return false; });
1
ответ дан 27 November 2019 в 05:16
поделиться

Вы также можете просто добавить класс к тегу привязки и проверить щелчок мышью:

$('a.button').click(function(){ 
  if($(this).hasClass('clicked')) return false;
  else { 
    $(this).addClass('clicked'); 
    return true;
  }
});

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

2
ответ дан 27 November 2019 в 05:16
поделиться

создайте JS - включите его на каждую страницу (или на главную страницу, если вы есть.)

Я думаю, что-то вроде

$(document).ready(function(){
  $('.button').click(function(){
    $('.button').click(function(e) {
      e.preventDefault();
    });
  });
});
5
ответ дан 27 November 2019 в 05:16
поделиться

Да, установите значение для отслеживания этого:

$("a").click(function (){
  if( $(this).data("clicked") ){
    return false;
  }
  $(this).data("clicked", true);
  return true;
});
13
ответ дан 27 November 2019 в 05:16
поделиться
$('a.button').bind('click', function(){
    alert('clicked once'); // for debugging
    // remove all event handlers with unbind()
    // add a new function that prevents click from working
    $(this).unbind().bind('click', function(){
        alert('clicked a 2nd time or more'); // for debugging
        return false;
    });
});
2
ответ дан 27 November 2019 в 05:16
поделиться
Другие вопросы по тегам:

Похожие вопросы: