1

我在某些链接上设置了一个 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 请求,如果不是,则不继续请求。

谢谢。

4

2 回答 2

0

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

一些评论:

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

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

于 2012-09-25T08:16:42.470 回答
0

就像@Marcin 提到的那样,您将两个单击事件绑定到一个元素,因此无论确认对话框的结果如何,您的 ajax 调用都会照常进行也就不足为奇了。

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

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

这是一个相关的jsFiddle供您使用。

于 2012-09-25T13:15:53.173 回答