Javascript-confirm () внутри jquery.щелкните по функции()
у меня есть следующие
$("element").click(function() {
var foo=bar;
if ( foo == "bar" ) {
confirm('Dialogue');
}
});
но я хотел бы bool функцию подтверждения. Я уже пробовал
$("element").click(function() {
var foo=bar;
if ( foo == "bar" ) {
var confirm=confirm('Dialogue');
if (confirm==true) {
alert('true');
} else {
alert('false');
}
}
});
но окно подтверждения не генерируется. Как я могу это сделать?
7 ответов
у вас есть несколько вопросов. Первая проблема заключается в том, что вы определяете переменную с именем confirm
. Не хорошо! Переименуйте его в isGood
или что-то еще.
другая ошибка вот здесь:
if (confirm=true) {
confirm=true
- это присвоение, а не сравнение.
это должно быть
if (confirm==true) {
или просто
if (confirm) {
таким образом, ваш код будет чем-то вроде
var bar = "bar";
$("button").click(function() {
var foo=bar;
if ( foo == "bar" ) {
var isGood=confirm('Dialogue');
if (isGood) {
alert('true');
} else {
alert('false');
}
}
});
все комментарии о сравнении верны, однако причина, по которой диалоговое окно подтверждения не отображается, заключается в том, что вы стираете объект поля подтверждения.
изменить имя confirm
var.
$(element).click(function() {
var confirm1 = confirm('Dialogue');
if (confirm1) {
alert('true');
} else {
alert('false');
}
});
сравните это с этим, который не работает.
$(element).click(function() {
var confirm = confirm('Dialogue');
if (confirm) {
alert('true');
} else {
alert('false');
}
});
когда вы объявляете переменную в любом месте вашей функции, она автоматически "вытягивается" наверх как локальная переменная. Когда вы вызываете confirm как функцию, она сначала находит локальную переменную (которая еще не определена) и не поднимается по цепочке областей до 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');
}
}
});
мой первоначальный, хотя ваша главная проблема лежит здесь
var foo=bar;
if ( foo == "bar" ) {
что такое бар? Я полагаю, вы намеревались выполнить следующее задание var foo="bar";
что сделало бы оператор if оценить как true и выполнить диалог подтверждения.
кроме того, следующее является неточным
var confirm = confirm("dialog");
if (confirm=true)
просто использовать это:
if (confirm("dialog"))
добавить .confirm
класс к элементу, затем в jQuery write..
$('.confirm').click(function() {
return confirm("Are you sure?");
});