Jquery. Как отменить переход по ссылке при обработке клика

jQuery
Ничто не вечно, и уж точно не вечны ссылки в интернетах. Иногда запоминаешь ссылку в закладках, а потом хвать, а ссылка-то и не работает. И вот чтобы в следующий раз не было мучительно и больно вновь искать прошлогодний снег, я опять сохраняю у себя чужой материал.

Думаю все читатели сталкивались с ситуацией, когда при клике на ссылку надо просто выполнить какое-то действие и при этом отменить переход по ссылке.

Есть два способа отменить переход по ссылке. Первый проще, просто использовать return false.

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

Этот способ не смотря на простоту имеет побочный эффект. Выполнение скрипта будет прекращено полностью, то есть другие обработчики не будут выполняться

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

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

Что именно использовать? Зависит от ситуации! Иногда топором удобнее, а иногда ножовкой. =)

Jquery. Как отменить переход по ссылке при обработке клика: 5 комментариев

  1. SunChaser

    За первое я бы всё-таки обрывал руки, т.к. если висит несколько обработчиков, у них не гарантирован порядок исполнения — какие выполнятся, а каие нет — неизвестно, а искать в чужом коде такую ошибку это то еще nightmare

  2. altesack Автор записи

    @ SunChaser:
    Ты не поверишь, большинство так и делает!

Комментарии запрещены.