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また、最初にコード自体を実行し、次にバインドされたコードを実行する属性を追加しました。2 つの別々のイベントをリンクに追加するようなものです。

于 2012-09-25T08:16:42.470 に答える
0

@Marcinが述べたように、2つのクリックイベントを1つの要素にバインドしているため、確認ダイアログの結果に関係なく、ajax呼び出しが通常どおり進行するのは不思議ではありません。

onclick属性を介してイベントを要素にバインドしないことで、1 つを排除します。(絶対に使わないでくださいonclick!)

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

これは、遊んでみるのに関連するjsFiddleです。

于 2012-09-25T13:15:53.173 に答える