/ / Jak mogę dać wtyczce jQuery wiele wstępnie ustawionych domyślnych opcji? - jquery, wtyczki, opcje

Jak mogę dać wtyczce jQuery wiele wstępnie ustawionych domyślnych opcji? - jquery, wtyczki, opcje

Załóżmy, że mam wtyczkę jQuery z domyślnymi opcjami, które można zastąpić tak jak każdą wtyczkę.

Co chcę zrobić, to dodać wiele domyślnych opcji, które można wywołać za pośrednictwem opcji lub gdzieś w plugin "wyzwalacz". Pytanie brzmi .. Jak?

Jsfiddle tego rodzaju wyjaśnia to dalej: http://jsfiddle.net/A7LMc/

Sposób działania tej wtyczki jest całkowicie nieistotny dla pytania.



Zasadniczo coś takiego:

    if ( option == "b" ) {
var defaults = {
width: "260",
height: "120"
};
}
else {
var defaults = {
width: "60",
height: "10"
};
}

a następnie wywołaj w opcjach coś takiego:

<script type="text/javascript">
$(document).ready(function() {
$(".boxes").b({
option: "b",
width: "500"
});
});
</script>


Aby dalej rozwinąć:

Działa to, ale nie jest to, czego chcę:

http://jsfiddle.net/A7LMc/1/ (w js)

========

To nie działa i jest mniej więcej tym, czego chcę:

http://jsfiddle.net/A7LMc/2/ (w html)

..z powodów, dla których powiedziałem "mniej więcej", ponieważ ... no cóż, to nie działa i nie obchodzi mnie, jak mogę je wywoływać, o ile jest w kodzie aktywacyjnym wtyczki, który jest wewnątrz <script> tagi i jest prosta.

Odpowiedzi:

2 dla odpowiedzi № 1

Przeniesiono do wtyczki: http://jsfiddle.net/A7LMc/3/

    if ( options.option == "b" ) {
var defaults = {
width: "260",
height: "120"
};
}
else {
var defaults = {
width: "60",
height: "10"
};
}

I wtedy:

$(".boxes").b({
option: "b",
width: "500"
});

var optiondefault = "width:500";
var optiona = { width: 260, height: 120, optiondefault  }
var optionb = { width: 60, height: 10, optiondefault }

$(".boxes").b({optiona});

W przeciwnym razie, dlaczego nie zrobić tego wewnątrz wtyczki?

Lub możesz to zrobić jako tablicę taką jak ta ....

var options = {
a:{ width: "100", height:"100" },
b: { width: "100", height:"100" }
};

$(".boxes").b({options["a"]});

0 dla odpowiedzi nr 2

To jest odpowiedź na twój komentarz, a nie na twoje pytanie,

   obj =  {
a : {
width: "100",
height: "100"
},
b : {
width: "200",
height: "200"
},
}
//obj.a.width >>>> 100
//obj.b.width >>>> 200

LUB

obj = {
[
{ width: "100", height:"100" },
{ width: "200", height:"200" },
]
}

// obj.[0].width >>> 100
// obj.[1].width >>> 200

tak jak w przypadku twojego pytania jquery już to robi dla ciebie, aby zastąpić domyślne opcje opcjami dostępnymi na wywołanie zwrotnym,

jeśli chcesz, aby wiele opcji zastąpiło go ponownie, to głupi, bo kto by chciał nadpisać coś, co nadpisał już na tym samym wywołaniu ...

AKTUALIZACJE

oto twoja ostatnia opcja

obj = {
options : {
option_a : {width: "",height:""},
option_b : {width: "",height:""}
},
use_option: "b"
}

$(".boxes").b(obj);

w ten sposób możesz kontrolować go w swoim widżecie / rozszerzonej wtyczce