Как передать переменную jQuery в свойство плагина? - PullRequest
2 голосов
/ 14 мая 2011

Извините, я новичок, кто-нибудь может мне помочь?

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

5 голосов
/ 14 мая 2011

Ты действительно близко. Просто угробите return, например ::100100

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

});

Это будет использовать значение из iW на момент вызова booklet.

Внутри литерала объекта (это вещь { ... }, которую вы передаете в функцию booklet), инициализаторы свойств очень похожи на операторы присваивания. Бит слева перед : дает имя свойства (и не может быть выражением), а бит справа после : дает значение для свойства (и может быть выражением & ndash; простым именем переменной, вызовом функции и т. д.).

4 голосов
/ 14 мая 2011

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();

});
1 голос
/ 14 мая 2011

Как и выше, вам не нужен возврат.

Но в качестве альтернативы многие плагины будут принимать функции для своих параметров для оценки при необходимости, чтобы вы могли, например,

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

Я неЯ не знаю этот плагин, поэтому я не уверен на 100%, что он его поддержит, но многие знают.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...