Я следую этому потоку, чтобы отключить/включить нажатие кнопки, Лучший способ удалить обработчик событий в jQuery?
его идея заключается в том, что вы также можете использовать метод live() для включения/отключения событий. Что произойдет с этим кодом, так это то, что когда вы нажмете на элемент тега, например, .load-item, он добавит отключенный класс к этому элементу. Это приведет к тому, что селектор больше не будет соответствовать элементу, и событие не будет запущено до тех пор, пока не будет удален класс «отключен», что сделает селектор .live() снова действительным.
Ниже то, что у меня получилось, и оно отключает нажатие на первую кнопку,
$('.load-item:not(.disabled)').live('click',function(){
/* add a .current class to the target item */
$(this).parentsUntil('.column-global').addClass('current');
/* add .disabled class to each a tag in the .current element-div */
$('.current a').each(function(index) {
$(this).addClass('disabled');
});
....
});
и у меня есть еще одна функция для удаления отключенного класса при нажатии на другую кнопку,
$('.button-return').click(function(){
...
/* remove all the .disabled class if any exists */
$('.current a').each(function(index) {
$(this).removeClass('disabled');
});
...
/* remove all the .current class if any exists */
$('.item-global').removeClass('current');
return false;
});
Я проверил, что он удаляет класс disabled, но первая кнопка все еще не возвращается в исходное состояние, доступное для нажатия.
я что-то пропустил - или live() на самом деле живет только один раз? любые лучшие решения, если live() не тот, над которым я должен работать ??
Спасибо.