0

$(window).resize を使用して、モバイル デバイスの向きが変わったときに何らかの関数を呼び出したいのですが、すべてのコードを $(document).ready 内に書きました。これは、Android デバイスを使用するときに機能しますが、iPhone では最初の向きが$(window).resize を再度呼び出していないことが検出されました。(window).resize 関数を $(document).ready の外に置くと、iPhone でも動作します。

この $(window).resize 関数内で、$(document).ready ブロックで定義されているメソッドを呼び出す必要があります。

4

2 に答える 2

2

2 つの異なるイベント ハンドラーから何かを使用する必要があるため、その何かをイベント ハンドラーの外に移動する必要があります。ready最初にトリガーされるかどうか、またはトリガーされるかどうかがわからないため、どちらのイベント ハンドラーでもメソッドを作成できませんresize

たとえば、メソッドを保持するオブジェクトを作成できます。

var commonMethods = {
  data: 42,
  someMethod: function() { alert(this.data); }
};

$(document).ready(function(){
  commonMethods.someMethod();
});

$(window).resize(function(){
  commonMethods.someMethod();
});
于 2012-09-03T14:33:17.317 に答える
1

$(document).ready()ブロックの外側でメソッドを定義します。
次に、コード全体で必要なときにのみ呼び出します。$(document).ready()このようにして、と$(window).resize()ブロックの両方からそれらにアクセスできます。

于 2012-09-03T14:36:40.777 に答える