jquery ダイアログを使用して、確認ボックスの置き換えを実装する必要があります。私はこのような呼び出し機能を持っています
function callingFunc() {
var a = confirmJquery("text", 300, 300, "ok", "cancel");
if (a == true) {
.....
}
else {
....
}
}
これはconfirmJquery関数です
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;
});
}
問題は、confirmJquery 関数が常にボタン ([OK] または [キャンセル]) が押される前に終了することです。したがって、呼び出し関数には値がありません。ユーザーがボタンを押して関数が終了し、呼び出し関数の残りの部分が続行されるまで、confirmJquery を待機させる必要があります。どうやってやるの ?
詳細を更新する必要があります。コールバック関数の方法は既に試しました。それは完全に機能します。しかし、人生はそう簡単ではありません。これは非常に大きく、古く、乱雑なシステムです。それを行うには、多くの関数を書き直す必要があるため、javascript の確認関数とまったく同じように機能する関数を作成する必要があります。