Mootools确认对话框,如果取消将停止ajax功能。

时间:2012-09-25 06:23:49

标签: javascript hyperlink mootools confirmation

我在某些链接上设置了一个JavaScript弹出“确认对话框”,当点击该链接时,它说“你确定吗?”并允许您确认或取消,但无论您选择什么,ajax呼叫都将有效。

<a onclick="return confirm(\'Are you sure?\')" class="sendEmailLink" href="/" id="someID">Send</a>

调用的函数如下所示:

$$('.sendEmailLink').addEvent('click', function(e)
{
    e.stop();

    (I assume something should go here)

    var myRequest = new Request.JSON({
    etc... 

确认对话不会停止上述代码是有道理的,但我无法理解如何在mootools中实现这一点。帮助

我需要一个可以选择是或否的对话框,如果是,则继续使用ajax请求,如果没有,则不要继续请求。

感谢。

2 个答案:

答案 0 :(得分:0)

以下是解决方案:http://jsfiddle.net/kVjAB/

一些意见:

  1. 不要再在Mootools中使用$$或$了。它们已被弃用。

  2. 在您的代码中,您绑定click event进行链接。此外,您添加了属性onClick,它将首先运行自己的代码,然后是绑定的代码。这就像你添加两个单独的事件来链接。

答案 1 :(得分:0)

就像@Marcin提到的那样,你将两个点击事件绑定到一个元素,所以难怪你的ajax调用会像往常一样进行,而不管确认对话框的结果如何。

通过onclick属性不将事件绑定到元素来消除一个。 (切勿使用onclick!)

element.addEvent('click', function() {
    if (confirm('Are you sure?')) {
        new Request.JSON({
            // ...
        }).send();
    } else {
        // Do nothing
    }
});

以下是您可以使用的相关jsFiddle