7

現時点では、ウィンドウのサイズ変更時に複数の関数が起動しています:

            $(window).resize(checkNav); 
            $(window).resize(checkWidth); 
            $(window).resize(checkSlider); 

私が探しているのは、同じウィンドウからすべてを実行して、次のようにサイズを変更することです。

            $(window).resize(checkNav && checkWidth && checkSlider);

私はそれを書き留めることを知りません!私が見つけた最善の方法は、ウィンドウのサイズ変更で関数を呼び出し、次に 3 つを呼び出すことですが、この仲介者関数を切り取りたいと考えています。

ありがとう

4

4 に答える 4

22

これは、「window:resize」という名前のカスタム イベントに後続のトリガー呼び出しを行うグローバル ハンドラーをアタッチすることで実現しました。

     $(window).resize(function () {
       $(window).trigger("window:resize")
    })

その後、カスタム イベントに必要な数の分離されたハンドラーをアタッチできます。

コードのどこかでタスク A を実行したい場合があります。

    $(window).on("window:resize", function (e) {
        //do some task A
    })

また、タスク B を別の場所で実行します。

    $(window).on("window:resize", function (e) {
        //do some task B
    })

このアプローチにより、アプリケーション全体でコードをより効率的に分離できます

カスタム イベントについては、https ://api.jquery.com/trigger/ を参照してください。

于 2015-04-28T10:40:12.153 に答える
0

私はちょうどこれを試しました

  $(window).resize ->
    console.log '1'

  $(window).resize ->
    console.log '2'

サイズを変更すると、1と2の両方がログアウトされます。したがって、複数の関数をバインドしてサイズを変更できるように見えますが、前の関数をオーバーライドしません。私はクロムでテストしていますが、これはクロスブラウザで動作するのでしょうか?

于 2015-09-21T03:34:48.530 に答える