Ich habe einige Kontrollkästchen mit bootstrapSwitch
gestylt. Ich schrieb ein Skript, das den Wert eines Kontrollkästchens zu einem Array hinzufügen muss, wenn bootstrapSwitch state
wahr ist.Javascript array.push() nicht hinzufügen, aber ersetzen Sie es
Dies ist mein Code:
$('input[name^=skill]').on('switchChange.bootstrapSwitch', function (event, state) {
//alert(state);
//var s = [];
var s = new Array();
if(state === true)
{
//var value = $(this).val();
s.push($(this).val());
console.log(s);//(value)
}
console.log(s);//(value)
});
Aber überraschend push
Methode den Wert ersetzen und meine s
Array immer einen Index haben.
Bitte lassen Sie mich wissen, warum ist das so?
Vielen Dank im Voraus
Definiere Array aus dem Handler..Oder wird initialisiert auf '[] (empty-array)' jedes Mal, wenn Handler aufgerufen wird ... – Rayon
Das liegt daran, dass du 's' bei jedem Klick neu erstellst. Versuchen Sie, die Deklaration von 's' außerhalb des Ereignisrückrufs zu bewegen – haim770