Я делаю прогрессбар и хочу, чтобы он играл, когда он находится в окне просмотра. Я получил эту работу, но код теперь выполняется каждый раз, и мне нужно, чтобы он запускался только один раз. Потому что теперь он создает несколько прогрессивных баров. ;-) Код, указанный ниже, используется в расширении Joomla.jquery run once .one() in viewport
(function ($) {
$(document).ready(function() {
// Function that checks if it is in view.
$("<?php echo '#progress' . $module->id ?>").waypoint(function() {
// Function that makes sure it only runs once.
// -----------I need to use .one() here but how?
// The location of the progressbar code for now lets put a alert in.
alert("run only once");
}, {
offset: '50%'
});
});
})(jQuery);
Я читал о функции .one() и как ее использовать здесь. Но я попробовал примеры, которые используют click
и ready
, а клик - это не то, что я хочу, но готовый должен сделать трюк, но ничего не получилось.
_ «но код теперь выполняется каждый раз, и мне нужно запустить только один раз.» _ Ли вы имеете в виду, что функция должна вызываться только один раз в '.ready()' или один раз для каждого браузера сессия? – guest271314
@ guest271314 Код должен вызываться только один раз на .ready() Я думаю. Я хочу, чтобы он работал, когда страница загружена, а div находится посередине экрана. – purple11111
@KevinB _ «Путевые точки - это библиотека, которая упрощает выполнение функции всякий раз, когда вы переходите к элементу». _ Верьте, что OP пытается вызывать обработчик не более одного раза. См. [Путевые точки] (https://github.com/imakewebthings/waypoints), если это тот же плагин. – guest271314