Was ist falsch mit der Definition von JavaScript-Variablen innerhalb von if-Blöcken?

Ich habe einige code wie dieser:

if (condition) {
var variable = blah;
}

if (differentcondition) {
var variable = blah;
}

Ist das richtig?

Ich gehe davon aus, dass die variable wäre nicht zugewiesen, wenn die Bedingung nicht true zurückgibt.

JSLint hält, mir mitzuteilen, variable bereits definiert ist.

Mache ich das falsch?

Dank.

OK, Hier ist meine eigentliche Anwendungsfall, ich mache event-delegation wie diese:

$("#container").click(function (event){ 

    if ($(event.target).is('img.class1')) {
        var imagesrc = $(event.target).attr('src');
        //Do something with imagesrc
    }

    if ($(event.target).is('img.class2')) {
        var imagesrc = $(event.target).attr('src');
        //Do something with imagesrc
    }

    //This condition is mutually exclusive to the above 2
    if ($(event.target).is('img.class3')) {
        var imagesrc = $(event.target).attr('src');
        //Do something with imagesrc
    }

    //This condition is mutually exclusive to 1 and 2 but not to 3
    if ($(event.target).is('img.class4')) {
        var imagesrc = $(event.target).attr('src');
        //Do something with imagesrc
    }

});

Eigentlich diese 2-Klassen schließen sich nicht gegenseitig aus.

Dies funktioniert für mich, aber ist es richtig?

Die Antworten waren sehr informativ, aber ich verstehe immer noch nicht, wie ich das einrichten der Variablen, die hier.

Eigentlich möchte ich auch sagen, dass bestimmte Bedingungen schließen sich gegenseitig aus, und bestimmte Bedingungen nicht.

Wie sollte ich die Struktur dieser?

Wahrscheinlich sollte ich habe dieses Beispiel, von Anfang an.

  • Ich würde diese Methode verwenden: var variable = (Bedingung) ? "foo" : "bar";
InformationsquelleAutor Mark | 2009-07-22
Schreibe einen Kommentar