2011-05-14 88 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

「它不工作」是_not_錯誤描述。 – 2011-05-14 10:24:49

+0

@Tomalak:此話不假,@Max一般來說,當你發現自己寫「這是行不通的,」最好停止並寫上「我很期待____,而是____正在發生的事情。」雖然在這種特殊情況下,這是很容易分辨的問題是什麼... – 2011-05-14 10:26:45

+0

@TJCrowder:是的,這不是最好的例子,但我雖然它可能值得一提的是一般規則。 – 2011-05-14 10:28:22

回答

4

return存在是不必要的。你只需要width: iW

這就是說,你還應該帶上調用$(document).width()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 2011-05-14 10:39:47

5

真的接近。只要溝return,例如:

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

}); 

將使用價值iW爲你調用booklet的時間。

在對象文字中(即您傳遞到booklet函數中的{ ... }),屬性初始值設定項很像賦值語句。在左邊的:給出之前的屬性名稱(和不能是表達式),並且在:後右側的位向爲屬性(和可以是表達  —一個簡單的變量的比特名稱,函數調用等)。

+0

Thanx!很棒! – Max 2011-05-14 10:38:53

1

如上所述,您不需要返回。

但是或者很多的插件將接受功能在需要的時候它們的參數來評估,所以你可以如

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

我不知道這個插件,所以我不是100%確定它會支持它,但很多人都這麼做。

相關問題