Как передать переменную 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%, что он будет поддерживать его, но многие это делают.