Как сделать параметры плагина jquery истинными / ложными в более компактной форме? - PullRequest
2 голосов
/ 23 февраля 2012

В настройках плагина jquery вы часто видите true и false, используемые так:

var defaults = {
    one: 'false',
    two: 'true',
    three: 'true'
};

Мне было интересно, смогу ли я сделать что-то вроде этого:

var defaults = {
    doStuff: 'three two' // order of these wouldn't matter
};

Этот код выше будет равен:

one == false
two == true 
three == true

Вопрос в том, как мне этого добиться?

Ответы [ 4 ]

2 голосов
/ 23 февраля 2012

Может быть, вы хотите что-то , как это

(function($){

    var defaults = {
        flags : ""
    }

    $.myPlugin = function(options){
        options = $.extend(true, {}, defaults, options);

        $.each(options.flags.split(" "), function(i, v){
            options[v] = true;
        });

        if (options.one) {
            alert("one setted");
        }

        if (!options.three) {
            alert("three not set");
        }

    }


})(jQuery);


$.myPlugin({flags: "one two"});
0 голосов
/ 23 февраля 2012

Первый метод предпочтительнее, потому что он более очевиден, что делает код.Компактность обычно не предпочтительнее, чем удобочитаемость.

0 голосов
/ 23 февраля 2012

Вы можете использовать 1 и 0 вместо true и false, что позволит сэкономить огромное количество символов.

0 голосов
/ 23 февраля 2012

Вы можете разбить полученную строку на массив, затем просмотреть каждый элемент и принять каждый присутствующий как «true».

...