Отключите и Включите ВСЕ Гиперссылки с помощью JQuery

Я имею, ниже которого отключает все гиперссылки, но после события я хочу включить им назад все снова, как я могу сделать это?

$("a").click(function() { return false; });

Я не думаю его столь же простой как просто установка его к истинному.;)

Спасибо все

6
задан Abs 4 February 2010 в 19:04
поделиться

8 ответов

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

$('a').bind("click.myDisable", function() { return false; });

Затем, когда вы захотите удалить этот обработчик, это будет просто:

$('a').unbind("click.myDisable");

Таким образом вы избежите путаницы другие вещи, которые могут быть связаны с "щелчком". Если вы просто отвяжете «щелчок», вы отвяжете все, что связано с этим событием.

редактировать в 2014 году - теперь вы привязываете события с помощью .on () :

$('a').on('click.myDisable', function() { return false; });

Вероятно, было бы лучше сделать это:

$('a').on('click.myDisable', function(e) { e.preventDefault(); });

Чтобы отключить:

$('a').off('click.myDisable');

Наконец, вы можете привязать обработчик к телу документа и работать с тегами , которые добавляются динамически:

$('body').on('click.myDisable', 'a', function(e) { e.preventDefault(); });

// to unbind

$('body').off('click.myDisable');
18
ответ дан 8 December 2019 в 03:39
поделиться

Попробуйте следующее:

// Better to use the live event handler here, performancewise
$('a').live('click', function() {... return false;});

// Now simply kill the binding like this
$('a').die('click');

пока

5
ответ дан 8 December 2019 в 03:39
поделиться

Вы хотите отменить привязку события: http://api.jquery.com/unbind/

0
ответ дан 8 December 2019 в 03:39
поделиться

Вы должны иметь возможность отменить привязку.

$("a").unbind("click");
0
ответ дан 8 December 2019 в 03:39
поделиться

, вы можете отвязать обработчик кликов:

$('a').unbind('click')
0
ответ дан 8 December 2019 в 03:39
поделиться

Связывание и открепление требует дополнительных затрат.

Другим решением было бы добавить такой класс, как disabled , а затем использовать hasClass ('disabled') , чтобы проверить, должен ли он возвращать false .

$('a').addClass('disabled');
$('a').click(function() {
    if($(this).hasClass('disabled'))
        return false;
});
5
ответ дан 8 December 2019 в 03:39
поделиться
var disableLink = function(){ return false;};
$('a').bind('click', disableLink);

для восстановления:

$('a').unbind('click', dsiableLink);
0
ответ дан 8 December 2019 в 03:39
поделиться
$(function(){


    $.myStopAnchor = function(){
      $stop = true;
    }

    $.myNoStopAnchor = function(){
      $stop = false;
    }

    $.myNoStopAnchor();

    $("a").click(function(ev) { 
       if ($stop){
         ev.stopPropagation()
       }
       return !$stop; 
    });

});
0
ответ дан 8 December 2019 в 03:39
поделиться
Другие вопросы по тегам:

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