O que há de errado em definir variáveis JavaScript dentro de blocos se?
Eu tenho um código como este:
if (condition) {
var variable = blah;
}
if (differentcondition) {
var variable = blah;
}
Isso está correto?
Eu suponho que a variável não seria atribuída se a condição não retornasse true.
O JSLint continua me dizendo, variável já definida.
Estou fazendo isso errado?
Obrigado.
OK, aqui está meu usecase real, estou fazendo uma delegação de eventos como esta:
$("#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
}
});
Na verdade, essas duas classes não são mutuamente exclusivas.
Isso funciona para mim, mas está correto?
As respostas foram muito informativas, mas ainda não entendi como devo configurar as variáveis aqui.
Na verdade, também quero dizer que certas condições são mutuamente exclusivas e certas condições não são.
Como devo estruturar isso?
Eu provavelmente deveria ter usado esse exemplo desde o começo.