2015-04-28 2 views
1

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

<a class="not-allowed" id="new-user" href="users/new">New</a> 

<script> 
    $('.not-allowed').click(false); 
</script> 

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

$('#new-user').removeClass("not-allowed"); 

класс «не разрешенный» является успешно удален, но ссылка еще не кликабельна. Я не хочу, чтобы все «не разрешенные» были кликибельны, потому что на странице больше не нужно щелкнуть. Как я могу сделать ссылку доступной?

ответ

3

Для отключения ссылки см принятого ответа на this question.

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

$('new-user').removeClass('not-allowed'); 
$('new-user').off('click'); 
2

Опция заключается в деле делегировании события основному родителю ваших якорей. Например, если #test является предком из них:

$('#test').on('click', '.not-allowed', false); 

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

0

Проблема заключается в том, что при вызове $('.not-allowed').click(false); он добавляет обработчик события к этому элементу. Удаление класса не удаляет этот обработчик событий. Таким образом, решение заключается в удалении обработчика событий. Вы можете сделать это, добавив:

$("#new-user").unbind(); 

Везде, где вы удаляете имя класса.

Demo here

0

Я вижу 2 вещи неправильно, один может быть просто опечатка в вашем вопросе.

Сначала селектор, в котором вы удаляете класс, является «новым пользователем», он должен быть «# new-user».

Во-вторых, хотя класс был удален, обработчик события клика по-прежнему привязан к ссылке.

Чтобы удалить обработчик события клика вы могли бы сделать что-то вроде этого:

$('#new-user').off('click'); 
Смежные вопросы