Javascript Wait Funktion zu beenden
Ich implementieren müssen, um eine bestätigungsbox Ersatz durch die Verwendung von jquery dialog. Ich habe eine aufrufende Funktion wie diese
function callingFunc() {
var a = confirmJquery("text", 300, 300, "ok", "cancel");
if (a == true) {
.....
}
else {
....
}
}
Dies ist die confirmJquery Funktion
function confirmJquery(msg, width, height, txtOk, txtCancel) {
var div = document.createElement('div');
div.className = "confirmJquery";
var span = document.createElement('span');
$(span).html(msg);
div.appendChild(span);
var buttonOk = document.createElement('button');
buttonOk.className = 'buttonStyleBigger';
$(buttonOk).html(txtOk);
var buttonCancel = document.createElement('button');
buttonCancel.className = 'buttonStyleBigger';
$(buttonCancel).html(txtCancel);
var divBottom = document.createElement('div');
divBottom.className = 'dialogAction';
divBottom.appendChild(buttonOk);
divBottom.appendChild(buttonCancel);
div.appendChild(divBottom);
var dialog = window.parent.$(div).appendTo(window.parent.document.body);
//open the dialog
dialog.dialog({
height: height,
width: width,
resizable: false,
//add a close listener to prevent adding multiple divs to the document
close: function(event, ui) {
//remove div with all data and events
dialog.remove();
},
modal: true
});
$(buttonOk).bind('click', function(){
return true;
});
$(buttonCancel).bind('click', function() {
return false;
});
}
Das problem ist, das confirmJquery Funktion immer zu beenden, bevor Sie die Taste (Ok oder Abbrechen) gedrückt wird; es ist daher kein Wert in der aufrufenden Funktion. Ich brauche, um die confirmJquery wartet, bis der Benutzer den Knopf drücken und dann die Funktion beenden und den rest der aufrufenden Funktion fortgesetzt. Wie kann ich das tun ?
Muss ich aktualisieren, mehr details: ich habe bereits versucht die call-back-Funktion Weg. Es funktioniert perfekt. Aber das Leben ist nicht einfach so. Dies ist eine sehr große, alte, chaotische system. Dies erfordert, mich neu zu schreiben, viel, viele Funktionen, also brauche ich eine Funktion erstellen, die handeln genauso wie die bestätigen-Funktion von javascript
InformationsquelleAutor Thai Tran | 2012-04-25
Du musst angemeldet sein, um einen Kommentar abzugeben.
Da Ihre Funktion wird asynchron, müssen Sie eine callback. So etwas wie dieses:
und
InformationsquelleAutor Alexander Pavlov
Bewegen Sie den rest der Funktion innerhalb einer anderen Funktion, und führen Sie diese zweite Funktion am Ende der confirmJquery Funktion.
InformationsquelleAutor Christian Romeni
ersten, um zu vermeiden, eine lange Liste von Argumenten, die auf der empfangenden Seite verwenden, können Sie ein Objekt von Argumenten statt. senden Sie dann über eine callback-Funktion an
confirmJquery
InformationsquelleAutor Joseph
ja, alexander ist richtig, nur reorganisieren code, eine für den dialog, für die Funktion basiert auf einer fahne/msg. genau wie mvc-Muster.
InformationsquelleAutor syedi