2017-02-02 11 views
-1

私のコードにel.one('click', fn)を使用しました。今私は.one()イベントをリフレッシュする必要があります。私はfnを同じロードページのelをクリックするごとに数回呼びたいと思っています。ページを再読み込みせずに.one()イベントを更新するにはどうすればよいですか?

私は知っている、私の場合は良い音質の.on()イベントがあります。しかし、実際には、私は一般的に.one()が必要です。ほんの数回、私は.one().on()のように動作させる必要があります。

よく、解決策はありますか?

+0

'on()'を使いたい場合は、 'one()'を呼び出さないでください。 – SLaks

+0

@SLaksほとんどの場合、 '.one()'が必要です。ちょうど 'el'をクリックする反応を変更する必要があります。 – stack

+0

ええ、それをやり直してください。そうでなければ、いいえ。あなたはすでに答えを知っているようです。 –

答えて

2

このようにするには、.on()をオンにしてから、.off()をオフにすることができます。

例:

var aFunc = function() { console.log('click!'); }; 

$("#foo").one("click", aFunc); 

// some other stuff happens and when you need it... 

$("#foo").on("click", aFunc); 

// now you don't want it anymore 

$("#foo").off("click", aFunc); 

これは完全にテストされていないですが、私はそれがうまくいくかもしれないと思います。

ハンドラを.off()にするには、.on()に匿名関数を指定できないことに注意してください。そのため、関数変数です。

+0

ありがとう.. upvote – stack

関連する問題