#javascript #jquery
#javascript #jquery
Вопрос:
Я не уверен, что заголовок соответствует моим потребностям, но я надеюсь, что он будет близок к тому, что мне действительно нужно.
Итак, я создаю один небольшой плагин для личного использования, и мне интересно, как быстро создать «X» количество кнопок, в зависимости от того, сколько социальных кнопок мне понадобится к тому времени.
На данный момент это три кнопки, но я могу включить или отключить их по желанию, как и в каждом плагине.
Итак, мне интересно, как я могу узнать, какая кнопка включена или отключена пользователем в плагине, а затем создать разные действия кнопки и текст кнопки для каждого.
Вот пример того, что у меня есть, и я просто хочу создать точный текст для каждой включенной кнопки.
var socialsCount = 0,
socials = [this.options.facebookButton, this.options.twitterButton, this.options.googleButton];
for (i = 0; i < socials.length; i ) {
if (socials[i] === true) {
socialsCount ;
}
}
for (i = 0; i < socialsCount; i ) {
$("<button />", {
type: "button",
class: "just some classes",
text: 'Make button names ' i
}).appendTo(".vsd-body");
}
Таким образом, в этом случае он проверит, какие кнопки являются истинными, и создаст необходимое количество «кнопок». Допустим, в этом случае «facebookButton и googleButton» имеют значение «true», а «twitterButton» имеет значение «false».
Как я могу установить «текст: создать имена кнопок» i прямо там, чтобы создать имена для каждой включенной кнопки.
Примеры: facebookButton — «facebook» twitterButton — «twitter» googleButton — «google»
Надеюсь, вы поняли мой вопрос. Мне нужен любой ответ!
Комментарии:
1. Не ответ, но
i
нигде не определен, что делает его глобальным при его использовании. Также словоclass
является зарезервированным словом, поэтому заключите его в кавычки.2. @AdamMerrifield — Спасибо за ответ. «i» — это просто цикл для добавления числа 🙂 Спасибо за упоминание, я помещу его в кавычки.
3. В
i
том-то и дело, что это просто для цикла, поэтому оно не должно быть глобальной переменной. Вам нужно определить его локально, чтобы он использовался там
Ответ №1:
Используйте массив объектов
var options = {
buttons:[
{ enabled:true, label:"Facebook" },
{ enabled:false, label:"Twitter" },
{ enabled:true, label:"Google" }
]
};
for(var i=0; i<options.buttons; i ){
if(options.buttons[i].enabled){
$("<button />", {
type: "button",
class: "just some classes",
text: options.buttons[i].label
}).appendTo(".vsd-body");
}
}
Комментарии:
1. Похоже, это сделает именно то, что мне нужно. Спасибо за ответ.