2014-01-13 32 views
0

我使用了一個刪除按鈕下面,雖然我得到的確認消息,如果我點擊取消它仍然可以通過去與它:返回確認仍在執行

<a onclick="return confirm('are you sure?')" class="btn btn-default btn-sm deleteList" href="#" list_id="1467" title="Delete your list: listName">Delete</a> 

任何明顯?

UPDATE:

這是連接到一個jquery點擊功能,因此,如果取消停止下通過鏈接,我怎麼可以防止燒單擊處理?

更新2

也試過在點擊處理,但同樣的問題開始:

$('.deleteList').on('click', function(e) { 
     confirm('are you sure?'); 
     var list_id = $(this).attr("list_id"); 
     $.ajax({ 
      context: this, 
      type: "POST", 
      url: '/ajax/actions/deleteList.php?listId=' + list_id, 
      success: function (data) { 
        var d = $.now(); 
        window.location.href = "/pages/dashboard?listDelete=" + d + "#mylists"; 
      } 
     }); // End .ajax 
     e.preventDefault(); 
    }); 
+2

如果您點擊取消,則不會進入'#',這是您的鏈接的'href'默認操作。但是如果你有其他的點擊處理程序,它們將被執行。 – techfoobar

+0

好吧,是的,它調用了一個JQuery點擊功能 - 我該如何防止? –

+1

'確認()'在實際點擊處理程序本身的開始處。 – techfoobar

回答

2

這裏是防呆答案:

$('.deleteList').on('click', function(event) { 
    event.preventDefault() 
    event.stopImmediatePropagation(); //de Added by @crush 
    return confirm("are you sure?") 
}) 

然後取出onclick="..."

至於更新的問題,整個問題是不同的。該問題現在是confirm()的無效使用,並且可能與$.ajax()發生異步問題。

+0

相關的API鏈接:http://api.jquery.com/event.stopImmediatePropagation/ – crush

+0

這就是停止整個點擊處理程序的工作 –

+1

@DarrenSweeney現在不清楚你的預期結果是什麼。 – crush