2016-08-09 10 views
-1

jqueryを使用して自分の検索バーのレイアウトを設定しようとしています。私。サイズ変更機能を使用して画面サイズが変わると余白とパディングを設定しようとしています。しかし、関数内で変数が定義されている場合にのみ機能するのはなぜか分かりません。 resize関数内で再び変数を定義すると、コードが醜く見えるようになり、より良い方法があると確信しています。私の変数の定義に間違っていますか?なぜ私の関数が外部に定義された変数にアクセスできない

+1

ウィンドウのサイズを変更するたびに変数を更新しようとしていますか?関数内でそれらを割り当てる必要があるため、イベントがトリガーされるたびにリセットされます。 –

+0

それは機能がどのように機能するのか、それは「スコープ」という用語です。 https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Functions –

答えて

2

私は変数があなたのケースでは機能しない理由はこれと考えています。たとえば、あなたの関数の外に$ windwidの変数を定義しています。だからあなたのサイズ変更関数がトリガーすると、$ windwidを新しいウィンドウの幅にリセットしません。

最初のページを設定するには、$ windwid = $(window).width()が必要ですが、サイズ変更が発生すると、$(window).width()をサイズ変更関数に再読み込みする必要があります。

これは、ウィンドウの幅を一度しか読み取っていないため、サイズ変更機能で更新していないためです。関数の外に変数を定義することはできますが、サイズ変更の後で、関数resizeで関数を更新する必要があります。

+0

Thomasに感謝します。私はもう少し調査を行い、ここで私の答えを見つけました。 http://stackoverflow.com/questions/16907863/jquery-how-to-update-variable-as-browser-resizes –

関連する問題