2011-05-14 20 views
2

私は初心者です、誰かが私を助けることができますか?jQuery変数をプラグインプロパティに渡すにはどうすればいいですか?

<script> 
var iW = $(document).width(); 

$(function() { 
//single book 
$('#mybook').booklet({ 
    next: '#custom-next',     
    prev: '#custom-prev', 
    keyboard: true, 
    width: return iW, // here is the problem! It doesn't work. 
    height: 200 

}); 

//multiple books with ID's 
$('#mybook1, #mybook2').booklet(); 

//multiple books with a class 
$('.mycustombooks').booklet(); 

}); 

</script> 
+1

"動作しません"はエラーの説明ではありません。 –

+0

@トマラク:まあまあ、私は____を期待していますが、代わりに____が起きているのです。この特定のケースでは、問題が何であるかを知ることはかなり簡単です... –

+0

@TJCrowder:そうです、それは最良の例ではありませんが、一般的なルールとして言及する価値はありますが。 –

答えて

4

returnは不要です。ただwidth: iWが必要です。

つまり、への電話は、readyブロック内にある必要があります。

$(function() { 
    var iW = $(document).width(); 

    //single book 
    $('#mybook').booklet({ 
     next: '#custom-next', 
     prev: '#custom-prev', 
     keyboard: true, 
     width: iW, 
     height: 200 

    }); 

    //multiple books with ID's 
    $('#mybook1, #mybook2').booklet(); 

    //multiple books with a class 
    $('.mycustombooks').booklet(); 

}); 
+0

Thanx!よく働く! – Max

5

あなたは本当に近いです。ただ、例えば、returnを捨てる:

あなたが bookletを呼ぶ時のよう iWを使用します
$('#mybook').booklet({ 
    next: '#custom-next',     
    prev: '#custom-prev', 
    keyboard: true, 
    width: iW, // <=== Updated 
    height: 200 

}); 

を。

オブジェクトリテラル(これはbooklet関数に渡すもので、{ ... }のものです)では、プロパティ初期化子は多くの代入文と似ています。 :は、プロパティの値を与える(と表現  —簡単な変数を指定でき:は、プロパティ名を与える(と表現することはできません)前に左のビット、および右側のビットの後名前、関数呼び出しなど)。

+0

Thanx!よく働く! – Max

1

上記のとおり、返品は必要ありません。

しかし、代わりに多くのプラグインは、必要に応じてパラメータを評価するための関数を受け入れます。

$('#mybook').booklet({ 
    next: '#custom-next', 
    prev: '#custom-prev', 
    keyboard: true, 
    width: function() { return $(document).width(); }, 
    height: 200 
}); 

私はそのプラグインを知らないので、私はそれをサポートするだろうと確信していませんが、多くはします。

関連する問題