2017-03-09 63 views
0

我正在使用多选框的插件。从理论上来说,这个问题可以用于任何其他带有选项的插件。 插件有一些选项,其中包括语言字符串。我想创建一组基于语言的选项 - 在此例中为<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>

+0

可以执行'$( 'HTML:郎(EN)')'在浏览器的工具,结果是一个对象,没有布尔。我不熟悉插件,也许测试'$('html:lang(en)')。length> 0'而不是布尔测试? – Gunnar

+0

http://stackoverflow.com/questions/5031531/javascript-reading-lang-attribute-in-html-tag – mplungjan

回答

0

也许你的意思呢?

$('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"]);
<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>

+0

太棒了。有用。非常感谢。 – Meek

+0

Du er velkommmen .... – mplungjan

相关问题