Как создать функцию jQuery one() на $(document).ready
, я знаю синтаксис событий кликов и селекторов, но я не знаю, как создать функцию, которая будет работать только на готовом документе, и только один раз, с инструкциями switch в нем?jQuery одна функция
ответ
По умолчанию функция будет выполняться только один раз, если нет слушателей событий, которые требуют более одного раза.
Ответ района не самый лучший. Поместите функцию один раз() внутри функции $ (document) .ready, чтобы она не загрязняла глобальное пространство имен. Это также обеспечивает более быстрое разрешение имени функции из-за цепей видимости JavaScript.
Поместите его снаружи, если он является многоразовым компонентом, поэтому вы можете легко переместить его в отдельный файл и вызвать из разных контекстов. Это применимо, если вы разрабатываете библиотеку или большое приложение.
$(document).ready(function() {
once();
\t function once() {
\t alert("See, this happens only once");
};
});
<script src="https://code.jquery.com/jquery-2.2.4.min.js" integrity="sha256-BbhdlvQf/xTY9gja0Dq3HiwQF8LaCRTXxZKRutelT44=" crossorigin="anonymous"></script>
<div>
Test
</div>
function one() {
alert("Once called");
}
$(document).ready(function() {
one();
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
Просто объявить функцию, как обычно, и вызывать из document.ready.
https://learn.jquery.com/using-jquery-core/document-ready/
function one() {
console.log("Do one");
}
$(document).ready(function() {
one();
});
var handler = function() {
alert('Called!');
};
$(document).ready(function() {
handler();
$('#elem').one('click', handler);
})
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script>
<div id="elem">Only Once!</div>
Если вы хотите быть абсолютно уверены, что функция выполняется только один раз, вы можете использовать флаг в случае его случайно называют еще раз:
var flag = false;
function one() {
if (!flag) {
flag = true;
//do stuff
}
}
//.ready()
$(function() {
one();
});
Если функция уникальна для одной страницы, вы можете объявить ее в вызове .ready()
.
Вы можете использовать $.Callbacks()
с параметром "once"
function once() {
alert("once")
}
var callbacks = $.Callbacks("once");
callbacks.add(once);
$().ready(callbacks.fire); // call `once`
$().ready(callbacks.fire); // this will not call `once`
$().ready(function() {
alert("do other stuff")
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js">
</script>
- 1. Одна функция div в jQuery
- 2. JQuery наведение нескольких элементов одна функция
- 3. Одна JQuery функция для нескольких DIVs
- 4. Структура jquery - одна функция в файле
- 5. Одна функция с несколькими триггерами. JQUERY
- 6. JQuery одна функция не работает, как ожидалось
- 7. Больше, чем одна сбрасывающая функция jQuery/Bootstrap
- 8. Функция jQuery Wrap Divs, но одна
- 9. Одна функция для обслуживания двух выбранных JQuery
- 10. JQuery вне $ .post функция не работает еще одна функция
- 11. Одна функция параметра
- 12. Ни одна групповая функция
- 13. Одна функция для двоих ID
- 14. несколько событий, одна функция в обработчике jQuery.on
- 15. PHP несколько форм, одна функция
- 16. Одна функция для интерактивных флажков
- 17. Одна функция для кольца Марк
- 18. Более одна функция IF заявления
- 19. Множество форм одна функция ajax
- 20. функция Php отсутствует одна запись
- 21. Одна функция для нескольких объектов
- 22. Javascript: одна функция, многие дивы
- 23. Racket/более чем одна функция
- 24. Почему не одна функция JQuery не звонит из Codebehind
- 25. jQuery одна и та же функция несколько идентификаторов
- 26. jQuery access vaules глобальной переменной формы одна функция в другую
- 27. jquery, моя функция выполняется много времени, а не одна
- 28. jQuery одна и та же функция для нескольких объектов
- 29. Функция загрузки JQuery для группы ссылок одна за другой?
- 30. jQuery - Одна функция для пограничного цвета, но с разных сторон
Вызов функции на документ готов. Это будет работать один раз. – Marc
Есть ли у вас код? '$ (SELECTOR) .on (HANDLER)' будет работать отлично ... – Rayon
Событие 'ready' происходит только один раз на странице. Если вы видите дублирование, убедитесь, что весь скрипт включен только один раз. Кроме того, [jQuery $ (document) .ready() запускается дважды] (https://stackoverflow.com/questions/10727002/jquery-document-ready-fires-twice) –