2011-01-04 6 views

答えて

6

あなたは、あなたのハンドラを登録した直後resizeイベントをトリガすることができます

$(document).ready(function() { 
    $(window).resize(function() { // Register handler. 
     fullScreen(); 
     footer(); 
    }).resize();     // Trigger event. 
}); 
+0

ああいいですね! –

+0

ああ、これです! – Thomas

+0

自分の関数を呼び出すだけのイベントをトリガするのは、軽く置くのに最適ではありません。 –

4

さて、あなたは一つの関数にそれらを組み合わせることができ、私はそれがより多くの「美しい」だか分からない:

jQuery(function($) { 

    both(); 
    $(window).resize(both); 

    function both() { 
     fullScreen(); 
     footer(); 
    } 
}); 

それは自分自身を繰り返していないの問題に対処ありません。

オフトピック$(document).ready(function(){...jQuery(function($){...にも切り替えました。同じことをしますが、引用符付きコードはnoConflictと互換性があります。あなたがnoConflict互換性を望むことは決してないだろう場合は、代わりに$(function(){...を使用することができますが、ちょっと、6つの余分な文字のために...

+0

これはおそらくもっと最適ですが、この場合、私はフレデリック・ハミディのよりコンパクトな答えを好む;)ありがとう。 – Thomas

2
$(function() { 
    function both() { 
     fullScreen(); 
     footer(); 
    } 

    both(); 
    $(window).resize(both); 
}); 
0
$(document).ready(function() { 
     var doStuff = function() { 
      fullScreen(); 
      footer(); 
     }; 
     doStuff(); 

     $(window).resize(function() { 
      doStuff(); 
     }); 
    }); 
+1

2つの不要なコードがあります。そのような関数宣言を書く理由と、なぜ匿名関数の呼び出しで関数呼び出しを折り返すのですか? –

1

@TJクラウダーの答え(別のメソッドへの呼び出し)は、理想的なソリューションと思われます。

新しいメソッドの呼び出しは、それ機能作り、これらのメソッドの両方への呼び出しの意思をキャプチャします。

また、読み込みやサイズ変更の作業を変更する必要がある場合は、1つの方法で変更するだけで、を維持可能にする必要があります。意味のある名前。意図を記述するreadjustLayoutAfterResizeは、が可読なになります。

機能性、保守性、可読性は私には美しく、誰でもそれを維持することは確実です。

+1

これは答えではありませんか?これはコメントです。 –

+0

これはコメントだった可能性があります。しかしそれは良いことだ。 –

+0

私はそれも@Marcusと@Tomalakだと思っていましたが、そのアプローチが美しい基準を満たすことができる理由に関する情報が含まれているため、拡張/読み込みができない窮屈なコメントではなく、 – StuperUser

関連する問題