Повторно включить обработчик событий для ссылки - PullRequest
1 голос
/ 13 июля 2011

Я хочу отключить ссылку, пока на странице существуют определенные условия, но включить ее снова, как только эти условия исчезнут.Итак, у меня есть функция, которая регулярно выполняется, которая проверяет условие.

if(!enabled) {
$(button).click(function(){return false;});
}

Как мне «включить» это событие щелчка, чтобы оно выполняло обычное действие?Все, что я хочу, это вести себя как обычная ссылка.

Ответы [ 4 ]

2 голосов
/ 13 июля 2011

Вы можете поместить собственное пространство имен событий в вашу ссылку и привязать / отменить привязку при необходимости:

Отключение:

$('#thelink').on('click.MyDisable', function () {
    return false; 
});

Включение:

$('#enabler').on('click', function () {
    $('#thelink').off('click.MyDisable');
});

Пожалуйста, ознакомьтесь с jsFiddle Demo .

0 голосов
/ 13 июля 2011

Я бы установил атрибут disabled как отключенный, если вы хотите отключить ссылку, и удалите атрибут, если хотите его включить.Единственная проблема в том, что ссылка будет отключена, но пользователь все равно сможет щелкнуть по ней.Поэтому в дополнение к этому в обработчике события click я бы проверил следующее условие:

$("#myLink").click(function(){
   if($(this).attr("disabled"))
      return false;
});

в ваших проверках вы можете сделать это:

$("#myLink").attr("disabled", "disabled");//if you want to disable it

$("#myLink").removeAttr("disabled");//if you want to enable it
0 голосов
/ 13 июля 2011

Вы можете сделать чек с помощью нажатия кнопки:

$(button).click(function(){ 
    if(!enabled) 
        return false;
});
0 голосов
/ 13 июля 2011

Поместите ваше условие в событие:

$(button).click(function(){
    if(!enabled) {
        return false;
    }
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...