1

我在页面中建立了一个对话框,我希望在单击对话框上的 OK 按钮时执行一个功能。我也想,对话框下面的代码只有在单击确定按钮下的功能后才能执行。

但我发现,即使在我点击确定按钮之前,控件已经执行了对话框下方的代码。

下面是代码。

var confirmationFlag =  false;
alert("alertbox1");

$("#confirmdialog").dialog("open");
alert("alertbox2");

$("#ui-dialog-title-confirmdialog").html("Delete this transaction?");
$("#confirmdialog").html("Are you sure you want to delete this transaction?");

$("#confirmdialog_Ok-button").unbind("click").click( function () { 
    confirmationFlag = true;
    alert("alertbox3" +confirmationFlag);
    $("#confirmdialog").dialog("close");            
});

alert("alertbox4 " +confirmationFlag);

理想情况下,我希望流程像 alertbox1 > alertbox2 > alertbox3 > alertbox4

但流程是这样的 alertbox1 > alertbox2 > alertbox4 > alertbox3

即使对话框打开并且在单击对话框上的确定按钮之前,alertbox4 也会执行。

在单击“确定”之前如何继续保持控制的任何帮助表示赞赏。

4

1 回答 1

0

单击事件处理程序alert("alertbox3" +confirmationFlag);中调用它,因此在您单击之前不会显示它。

要获得您想要的订单,您必须将警报调用移到 click 函数之外,就像其他警报调用一样。请注意,如果你把它移到外面,confirmationFlag仍然会false因为点击处理程序还没有被调用。

于 2012-08-02T06:39:17.747 回答