私はプログレスバーを作成していて、ビューポートにあるときに再生したいと思います。私はこれを稼働させましたが、コードは毎回実行されており、1回だけ実行する必要があります。これは複数のプログレスバーを作成するためです。 ;-) 以下のコードはJoomla Extensionで使用されています。jqueryは一度ビューポートで.one()を実行します
(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 _ "ウェイポイントは、要素をスクロールするたびに関数を実行するのを容易にするライブラリです。" _ Believe OPはハンドラを最大で1回呼び出そうとしています。同じプラグインの場合は、[Waypoints](https://github.com/imakewebthings/waypoints)を参照してください。 – guest271314