デスクトップレイアウトとモバイルレイアウト用の特定のjQuery関数のセットを備えたレスポンシブサイトで作業しています。両方が同時にアクティブである場合、それらは互いに干渉します。
window.widthをチェックすることで、ページの読み込み時に正しい関数のセットのみを提供できます。window.resizeでも同じことを実行したいと思います。
私はここにいる場所の簡略化されたフィドルを設定しました:http://jsfiddle.net/b9XEj/
現在、 2つの問題があります。
- desktopFunctionsまたはmobileFunctionsは、すでにロードされているかどうかに関係なく、ページのサイズ変更時に継続的に起動します。
- ウィンドウのサイズが1つのブレークポイントを超えて変更されてから前のサイズに戻された場合、誤った関数のセットがすでにロードされており、現在のセットに干渉しています。
window.resize関数は、次のように動作する必要があります。
- ビューポートサイズに対して現在アクティブな関数の正しいセットがあるかどうかを確認します
- はいの場合、戻ります。
- いいえの場合、正しい関数のセットを起動し、正しくない関数のセットが存在する場合は削除します。
上記のフィドルの例では、「モバイル機能がアクティブです」または「デスクトップ機能がアクティブです」のいずれかを表示する1行が常に表示されます。
この時点で少し迷っていますが、使ってみました
if ($.isFunction(window.mobileFunctions))
関数がすでに存在するかどうかを確認しますが、関数全体を壊さずに機能させることはできないようです。そのコードのフィドルは次のとおりです:http://jsfiddle.net/nA8TB/
先を考えると、この試みでは、誤った関数のセットがすでに存在するかどうかも考慮されません。ですから、これをもっと簡単に処理して、両方の問題を解決できる方法があることを本当に望んでいます。
どんな助けでも大歓迎です!