2012-02-27 21 views
2

私の問題は次のとおりです。私は、2つのスタイルシート、1つは「PC指向」ビジュアル、もう1つはモバイルビジュアライゼーションのためのモバイルフレンドリーなWebサイトを開発しています。 2つのCSSに加えて、1つの視覚化モードから別の視覚化モードに切り替えるときに、メニュー上のいくつかのhref属性を変更する機能が必要です。関数を何回も呼び出すことはできますか?

、それは非常に長く、おそらく退屈だろうと私はとにかく私は$(document).readyとのAND $(window).resize両方と呼ばれる関数を必要とし、深いものの詳細につもりはない、それは窓があるたびにありますサイズ変更されました。

は、だから私は、関数を宣言し、それを呼び出すことができるようにするために、それgoToAnchor名付け複数回:

完全に罰金ですが、私が言ったように私も毎回実行する機能が必要
$(document).ready(function() { 
    function goToAnchor() { ... modify some href attr ... } 
    goToAnchor(); 
}); 

ウィンドウをリサイズので、私は、コードがどのように見えるかもしれないと思っている:問題は簡単です

$(document).ready(function() { 
    function goToAnchor() { ... modify some href attr ... } 
    goToAnchor(); 
    $(window).resize(goToAnchor()); 
}); 

、機能がresize上で実行されません。私はjQueryのドキュメントをチェックし、イベントに機能を連携に関するすべての例は次のように書かれていることに気づいた:

$(window).resize(function() { ...do stuff...}); 

私はすでに以前の機能を書かれているように私は、しかし匿名関数を使用して訴えるないでしょう。私がしたいのは、非常に単純です。匿名関数に頼らずに関数を何度も呼び出すと、自分のコードを複製することができます(結局のところ、関数がうまくいくと思われます)。

+0

[jQuery:定義済みの関数で変更イベントハンドラを追加する]の可能な複製(http:// stackoverflow。com/questions/4524207/jquery-add-change-event-handler-with-predefined関数) –

答えて

3

変更$(window).resize(goToAnchor());置き換えたい

+0

そうです、それは今働いています。ご協力ありがとうございました。 – user1236489

2

$(window).resize(goToAnchor);へ:$(window).resize(goToAnchor());$(window).resize(goToAnchor);と。

あなたのコードはgoToAnchor関数の応答を渡しています。あなたがしたいのは、かっこを省略して関数への参照を渡すことです。

しかし、あなたはまた、これを行うことができます:

$(function() { 
    $(window).bind('resize', function() { /*resize code*/ }).trigger('resize'); 
}); 

は、これが効果的にコードを実行するときwindowオブジェクト上だけでなく、document.readyresizeイベントが発生(.trigger('resize')document.readyresizeイベント火災を作ります)。

$(window).resize(goToAnchor); 

$(window).resize(function() { ... modify some href attr ... }); 

が明らかである場合に

var goToAnchor = function() { ... modify some href attr ... } 

+0

"は、" goToAnchor'関数のコードを渡します "?まあまあ。 * goToAnchor関数を呼び出して*結果を渡しています。かっこでその関数が実行されます。 – cHao

+0

@cHaoそれは、入力のおかげで申し訳ありませんでした。 – Jasper

+0

@ジャスパーあなたの答えをありがとう、それは今うまくいきます。ちなみに、私は昨晩、.trigger()について読んで、「楽しく」始めているので、あなたの答えは特に高く評価されます。 – user1236489

0

何が起こっているかを確認する良い方法は、への関数の宣言を変更することにより、あります同じことをやっている。

+0

あなたもありがとう。乾杯 – user1236489

関連する問題