Когда вы делаете это:
$('.disabled').click(function(){return false;});
... вы делаете две вещи, возвращая false
:
Вы запрещаете браузер по умолчанию (как event.preventDefault()
) и
Вы предотвращаете всплеск DOM события (как event.stopPropagation()
).
Если вы хотите выполнить одно или другое (например, просто запретить использование по умолчанию), вы можете сделать это:
$('.disabled').click(function(event){ event.preventDefault(); });
Таким образом, вы предотвращаете действие по умолчанию, но непрекратить пузыриться, и поэтому любой обработчик live
, который у вас есть, должен в конечном итоге сработать.
Но мне интересно, действительно ли вы хотите этим заниматься.Я предполагаю, что если ссылка может иметь класс «отключен», то иногда ее можно «включить»?Простое удаление «отключенного» класса не отключит этот обработчик кликов (это часть того, для чего live
предназначен для обработки изменений за вас).Например:
$('.disabled').live('click', function(event){ event.preventDefault(); });
// ^^^^^^^^^^^^^-- Note the change
... сообщает jQuery, что вместо поиска элементов с классом «отключен» сейчас вы хотите, чтобы он проверял, когда происходит щелчок, и выполнялся толькообработчик, если элемент соответствует , что момент времени.