插件选项 - 如何创建多组选项

时间:2017-03-09 14:33:56

标签: jquery

我正在使用插件进行多选框。从理论上讲,这个问题适用于任何其他带有选项的插件。 该插件有一些选项,语言字符串等。我想基于语言创建一组选项 - 在本例中为<html lang="">属性。

我试过这个:

var multipleSelectLang = function() {
    var da = {
        placeholder: 'V&aelig;lg flere...',
        selectAllText: 'V&aelig;lg alle',
        width: '100%'
    };
    var en = {
        placeholder: 'Select multiple...',
        width: '100%'
    };
    return ($('html:lang(en)')) ? en : da;
};
$('select[multiple]').multipleSelect(multipleSelectLang());

因此,根据<html lang="en"><html lang="da">,它应该使用相应的选项运行插件。 正如您在this Fiddle中看到的那样,即使语言设置为"da",它也会显示英语选项。

我希望我的问题有道理。有什么想法是错的吗?

$('html').attr("lang", "da");
// Multiple select functions - work fine.
// $('select[multiple]').multipleSelect({
//   placeholder: "V&aelig;lg flere...",
//   selectAllText: 'V&aelig;lg alle',
//   width: '100%'
// });
var multipleSelectLang = function() {
  var da = {
    placeholder: 'V&aelig;lg flere...',
    selectAllText: 'V&aelig;lg alle',
    width: '100%'
  };
  var en = {
    placeholder: 'Select multiple...',
    width: '100%'
  };
  return ($('html:lang(en)')) ? en : da;
};
$('select[multiple]').multipleSelect(multipleSelectLang());
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/multiple-select/1.2.0/multiple-select.js"></script>
<select multiple="multiple">
  <option>1</option>
  <option>2</option>
  <option>3</option>
  <option>4</option>
  <option>5</option>
</select>

1 个答案:

答案 0 :(得分:0)

也许你是这个意思?

&#13;
&#13;
$('html').attr("lang", "da");
// Multiple select functions - work fine.
// $('select[multiple]').multipleSelect({
//   placeholder: "V&aelig;lg flere...",
//   selectAllText: 'V&aelig;lg alle',
//   width: '100%'
// });
var multipleSelectLang = {
  da: {
    placeholder: 'V&aelig;lg flere...',
    selectAllText: 'V&aelig;lg alle',
    width: '100%'
  },
  en: {
    placeholder: 'Select multiple...',
    width: '100%'
  }
}
$('select[multiple]').multipleSelect(multipleSelectLang[$("html").attr("lang")||"en"]);
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/multiple-select/1.2.0/multiple-select.js"></script>
<select multiple="multiple">
  <option>1</option>
  <option>2</option>
  <option>3</option>
  <option>4</option>
  <option>5</option>
</select>
&#13;
&#13;
&#13;