Как передать переменную 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>
3 ответа:
Тем не менее, вы также должны привести вызов к
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(); });
Вы действительно близки. Просто бросьте
return
, например:$('#mybook').booklet({ next: '#custom-next', prev: '#custom-prev', keyboard: true, width: iW, // <=== Updated height: 200 });
, который будет использовать значение
iW
в момент вызоваbooklet
.Внутри объектного литерала (это то, что вы передаете в функцию
booklet
) инициализаторы свойств очень похожи на операторы присваивания. Бит слева перед:
дает имя свойства (и не может быть выражением), а бит справа после:
дает значение для свойство (и может быть выражением - простым именем переменной, вызовом функции и т. д.).
Как и выше, вы не нуждаетесь в возврате.
Но в качестве альтернативы многие плагины будут принимать функции для оценки их параметров, когда это необходимо, чтобы вы могли, например,
$('#mybook').booklet({ next: '#custom-next', prev: '#custom-prev', keyboard: true, width: function() { return $(document).width(); }, height: 200 });
Я не знаю этот плагин, поэтому я не уверен на 100%, что он будет поддерживать его, но многие это делают.