如何将jQuery变量传递给插件属性?

时间:2011-05-14 10:12:22

标签: javascript jquery variables

抱歉,我是初学者,有人可以帮帮我吗?

<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>

3 个答案:

答案 0 :(得分:5)

真的关闭。只需抛弃return,例如:

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

});

在您拨打iW时,将使用booklet

在一个对象文字中(那是你传递给{ ... }函数的booklet事物),属性初始化器很像赋值语句。 :前面的位给出了属性名称(并且不能是表达式),:后面的位给出了属性的 (并且可以是一个表达式 - 一个简单的变量名,一个函数调用等)。

答案 1 :(得分: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();

});

答案 2 :(得分:1)

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

但是,许多插件可以接受其参数的功能,以便在需要时进行评估,例如。

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

我不知道这个插件所以我不是百分之百确定它会支持它,但很多人都支持它。

相关问题