2012-09-25 38 views
1

我在一些鏈接上有一個JavaScript彈出的「確認對話框」設置,當鏈接被點擊時它說「你確定嗎?」並讓你確認或取消,但無論你選擇什麼,ajax呼叫都可以工作。Mootools確認對話框,如果取消將停止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請求,如果不是,則不要繼續請求。

謝謝。

回答

0

像@Marcin提到的,你要綁定兩個click事件到一個元素,所以這也難怪,你的Ajax調用照常進行不論確認對話框的結果。

消除一個,不通過onclick屬性將事件綁定到元素。 (切勿使用onclick!)

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

這裏是你玩弄相關jsFiddle

0

這裏是解決方案:http://jsfiddle.net/kVjAB/

一些評論:

  1. 在MooTools的$再也不要使用$$或。他們已被棄用。

  2. 在你的代碼中,你綁定了click event來鏈接。此外,您還添加了屬性onClick,它將首先運行自己的代碼,然後是綁定的代碼。這就像你添加兩個單獨的事件來鏈接。