0

我正在寻找停止按钮单击进度的方法,直到确认完成。

请建议一种暂时停止进度的方法,直到“显示确认框”返回 true。现在我的函数将继续向前运行。

.click(function(){
    //Show Confirm Box <- will return true of false

    //Start Process if true;

});

非常感谢你。

4

3 回答 3

2

调用confirm()是同步的。也就是说,在用户关闭该框之前,您的代码实际上是暂停的。

if (confirm('some message')) {
    // User confirmed, do something here
}

现在,如果您不使用confirm(),而是使用您自己的自定义模式对话框或类似的东西,那么您将需要使用回调。

您不应阻止脚本执行,因为该页面将显示为对用户锁定。相反,将回调函数传递给显示对话框的函数,并在完成后让对话框调用该函数。

function showDialog (confirmCallback) {
    // Show dialog here
    if (result === 'yes') { // replace this, obviously
        confirmCallback();
    }
}

.click(function(){
    showDialog(function () {
        // start process
    });
});
于 2012-12-27T06:37:36.107 回答
1

click 事件的参数是一个函数处理程序,当 click 事件发生时将被执行。

因此,当确认对话框返回 false 值时,您始终可以从该函数返回。

代码将是这样的

jQuery(".button").click( function(){
   var ans = confirm("Do you want to proceed further ?");
   if(!ans) return;

   alert("Now you can code the rest ");

});​</p>

我创建了一个小提琴,请在下面查看

http://jsfiddle.net/shidhincr/Ubj7S/1/

于 2012-12-27T06:40:21.193 回答
0

你看到这个问题了吗? 在自定义确认框中暂停执行

只需根据用户从确认框输入的代码拆分代码并调用函数

于 2012-12-27T06:36:02.423 回答