-1
ПочемуJQuery.on() сваи до
JQuery.on('sameEventName.',function(){...});
сваи до зависимости, сколько времени работает код? И есть ли способ предотвратить это?
Вот fiddle
ПочемуJQuery.on() сваи до
JQuery.on('sameEventName.',function(){...});
сваи до зависимости, сколько времени работает код? И есть ли способ предотвратить это?
Вот fiddle
Я думаю, что вы хотите достичь поведения, где даже с несколькими щелчками, только один слушатель событий присутствует. Хотя следующее это не идеально, но это самый простой способ обхода. Используйте функцию .off
, чтобы удалить предыдущий прослушиватель событий.
$(document).off('aCustomEventName');
$(document).on('aCustomEventName', function(){...});
Полный фрагмент кода:
$('#set').on('click', function() {
$(document).off('aCustomEventName');
$(document).on('aCustomEventName', function (event) {
alert('event caught');
});
});
$('#trigger').on('click', function() {
$(document).trigger("aCustomEventName");
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div>
Click on Set Listener button a few times then click on the Trigger Event button..
</div>
<button id="set">Set Listener</button>
<button id="trigger">Trigger Event</button>
А также fixed jsfiddle (такой же, как фрагмент кода).
Почему вы ожидаете добавления двух обработчиков, чтобы не добавлять двух обработчиков? – SLaks
На самом деле обработчики запускаются в модальной форме (исходящие из удаленного источника через ajax), чтобы закрыть форму после успешной отправки и перезагрузить некоторые данные. Я сохраняю данные один за другим, и каждый раз, когда я вызываю форму modal, выполняется код .on ('..'). И обновляет данные, которые могут быть дважды или более ненужными .. – DonkeyKong
Возможно, вам необходимо обновить свой вопрос, чтобы более точно отразить ваш сценарий, включая фактический код. – j08691