イベントバインディングと伝播を使用して変数値を監視し、目的の値に達した場合は別のイベントをトリガーしてみませんか? 基本的な考え方は以下のデモ「オブジェクト」を使用していますが、「positionNow」またはアクセス可能なプロパティ (「ウィンドウ」オブジェクトを含む) を既に持っている可能性のあるオブジェクトの他の種類の変数に適用できます。
例: jsfiddle - http://jsfiddle.net/vepWE/1/
JS:
$("#b").data('myscrollposition', 100);
$("#c").data('myscrollposition', 101);
$("#d").data('myscrollposition', 100);
function f(evt)
{
$(this).val("desired event triggered");
}
function change(evt)
{
var m = $(this).data('myscrollposition');
//equivalent to above: var m = $(evt.currentTarget).data('myscrollposition');
if(m == 100)
{
$(this).trigger('valuereached');
}
}
$(".des").on('change', change);
$(".des").on('valuereached', f);
$(".des").trigger('change');
HTML:
<input class = "des" id = "b"></input>
<input class = "des" id = "c"></input>
<input class = "des" id = "d"></input>
注:要素がまだページに存在しない場合は、次の構文を使用する必要があることにも
$(".parentcontainer").on("myevent", '.listenforthisalways', function(event){
alert($(this).text());
});
また、ページの後半で「listenforthisalways」のクラスを持つ要素を追加しても機能します (上記の例では、クラス「parentcontainer」を持つコンテナーの子孫として追加された場合のみ)。ページ上の要素。
クラス「myFOO」を持つ html 要素の追加をページのどこかでリッスンし、後でページに追加された場合でも、イベント「myevent」をその要素の関数「myfunction」にバインドする別の例は、次のようになります。 :
function myfunction(evt)
{
//whatever
}
$(document).on("myevent", '.myFOO', myfunction);
お役に立てれば!