Ich habe folgendes
$("element").click(function() {
var foo=bar;
if ( foo == "bar" ) {
confirm('Dialogue');
}
});
Aber ich möchte die Bestätigungsfunktion boolen. Ich habe es schon probiert
$("element").click(function() {
var foo=bar;
if ( foo == "bar" ) {
var confirm=confirm('Dialogue');
if (confirm==true) {
alert('true');
} else {
alert('false');
}
}
});
Es wird jedoch kein Bestätigungsfeld generiert. Wie kann ich das erreichen?
Sie haben ein paar Probleme. Das erste Problem ist, dass Sie eine Variable mit dem Namen confirm
definieren. Nicht gut! Benennen Sie es in isGood
oder etwas anderes um.
Der andere Fehler ist hier richtig:
if (confirm=true) {
confirm=true
ist Zuordnung, kein Vergleich.
Es muss sein
if (confirm==true) {
oder nur
if (confirm) {
Dein Code wäre also ungefähr so
var bar = "bar";
$("button").click(function() {
var foo=bar;
if ( foo == "bar" ) {
var isGood=confirm('Dialogue');
if (isGood) {
alert('true');
} else {
alert('false');
}
}
});
if( !confirm('Are you sure you want to continue?')) {
return false;
}
Alle Kommentare zum Vergleich sind korrekt. Der Bestätigungsdialog wird jedoch nicht angezeigt, weil Sie das Bestätigungsfeld-Objekt löschen.
Ändern Sie den Namen der Variable confirm
.
$(element).click(function() {
var confirm1 = confirm('Dialogue');
if (confirm1) {
alert('true');
} else {
alert('false');
}
});
Vergleichen Sie das mit diesem, das nicht funktioniert.
$(element).click(function() {
var confirm = confirm('Dialogue');
if (confirm) {
alert('true');
} else {
alert('false');
}
});
Wenn Sie eine Variable irgendwo in Ihrer Funktion deklarieren, wird sie automatisch als lokale Variable nach oben "gezogen". Wenn Sie bestätigen als Funktion aufrufen, findet es zuerst die lokale Variable (die noch nicht definiert wurde) und geht nicht die Gültigkeitsbereichskette nach window
hoch, in der die Funktion lebt.
$("element").click(function() {
var foo=bar;
if ( foo == "bar" ) {
var confirm=confirm('Dialogue');
if (confirm==true) {
alert('true');
} else {
alert('false');
}
}
});
ist das gleiche wie
$("element").click(function() {
var foo=bar, confirm = undefined;
if ( foo == "bar" ) {
confirm=confirm('Dialogue');
...
});
Sie könnten 1) Ihre Variable umbenennen, 2) window.confirm("Dialog")
aufrufen und sagen, dass Sie anstelle der lokalen Variablen die globale Funktion verwenden möchten, oder 3) den Bestätigungsaufruf einfach in ein if einfügen
$("element").click(function() {
var foo=bar;
if ( foo == "bar" ) {
if (confirm('Dialogue')) {
alert('true');
} else {
alert('false');
}
}
});
versuchen
if (confirm) {
alert('true');
} else {
alert('false');
}
Meine erste Frage ist, dass Ihr Hauptproblem hier liegt
var foo=bar;
if ( foo == "bar" ) {
was ist bar? Ich glaube, Sie wollten die folgende Zuweisung var foo="bar";
vornehmen, wodurch die if -Anweisung als wahr ausgewertet und der Bestätigungsdialog ausgeführt werden würde.
Darüber hinaus ist das Folgende ungenau
var confirm = confirm("dialog");
if (confirm=true)
benutze einfach folgendes:
if (confirm("dialog"))
Fügen Sie eine .confirm
-Klasse zu einem Element hinzu und schreiben Sie anschließend in jQuery.
$('.confirm').click(function() {
return confirm("Are you sure?");
});