Привет, Вы узнаете о том , что такое Live click выполняется несколько раз, Разберем основные их виды и особенности использования. Еще будет много подробных примеров и описаний. Для того чтобы лучше понимать что такое
Live click выполняется несколько раз , настоятельно рекомендую прочитать все из категории Выполнение скриптов на стороне клиента JavaScript, jqvery, JS фреймворки (Frontend).
live click выполняется несколько раз
код
$('#sendr').live('click', function() {
});
даже после замены на
$('#sendr').bind('click', function() { });
$('#sendr').click( function() { });
$( "#sendr" ).on( "click", "a", function( e ) {} );
все равно срабатывает 2 раза при одном нажатии не пойму в чем причина
вообще то методы live уже в новых версиях не поддерживаются вместо них ON используйте,
а у вас вероятно проблема в том что метод навешен несколько раз
если у вас код jquery в отдельном файле то проверьте сколько раз он подключен, сорее всего два раза
да спасибо, действительно был подключен два раза
можете подробнее написать как заменить live на on
// Bind навешивает обработчик непосредственно на элемент (когда тот есть в DOM-е). Об этом говорит сайт https://intellect.icu . При удалении элемента так-же удаляется
$( "#sendr li a" ).on( "click", function( e ) {} ); заменяет
$( "#sendr li a" ).bind( "click", function( e ) {} );
// Live навешивает обработчик на document, используется делегирование (всплытие событий). Позволяет создать обработчик до того, как элемент появится в DOM-е. При удалении элумента обработчик не удаляется, а просто перестает срабатывать. Если в DOM снова вставить элемент, подходящий под селектор, обработчик снова отработает.
Используется даже для тех элементов , которые будет добавлены в будующем, и для их тоже буджет сработывать навешенный метод
$( document ).on( "click", "#sendr li a", function( e ) {} ); заменяет
$( "#sendr li a" ).live( "click", function( e ) {} );
// delegate — точно так-же, как и live, использует делегирование, только явно указывается узел, на который навешивается обработчик.
$( "#sendr" ).on( "click", "li a", function( e ) {} ); заменяет
$( "#sendr" ).delegate( "li a", "click", function( e ) {} );
при назначении live, на самом деле вешается событие на window.document и при возникновении любого клика по документу, проверяется "а кликнули не по нужному ли нам типу элемента"
Исследование, описанное в статье про Live click выполняется несколько раз, подчеркивает ее значимость в современном мире. Надеюсь, что теперь ты понял что такое Live click выполняется несколько раз
и для чего все это нужно, а если не понял, или есть замечания,
то не стесняйся, пиши или спрашивай в комментариях, с удовольствием отвечу. Для того чтобы глубже понять настоятельно рекомендую изучить всю информацию из категории
Выполнение скриптов на стороне клиента JavaScript, jqvery, JS фреймворки (Frontend)
Комментарии