Когда вы объявляете переменную в любом месте вашей функции, она автоматически «вытягивается» наверх как локальная переменная. Когда вы вызываете подтверждение как функцию, оно сначала находит локальную переменную (которая еще не была определена) и не поднимается вверх по цепочке областей действия до window
, где находится функция.
$("element").click(function() {
var foo=bar;
if ( foo == "bar" ) {
var confirm=confirm('Dialogue');
if (confirm==true) {
alert('true');
} else {
alert('false');
}
}
});
совпадает с
$("element").click(function() {
var foo=bar, confirm = undefined;
if ( foo == "bar" ) {
confirm=confirm('Dialogue');
...
});
Вы могли бы 1) переименовать вашу переменную, 2) вызвать window.confirm("Dialog")
, сказав, что вы хотите использовать глобальную функцию вместо локальной переменной, или 3) просто поместить вызов подтверждения внутри if
$("element").click(function() {
var foo=bar;
if ( foo == "bar" ) {
if (confirm('Dialogue')) {
alert('true');
} else {
alert('false');
}
}
});