2017-03-09 35 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