2012-12-24 35 views
0

我有一個網頁,當我點擊一個鏈接,它會打開一個「複查該產品頁面。在第二頁上,我可以單擊esc鍵返回到上一頁。jQuery的事件傳播史

在第二頁上,我有一個按鈕,它可以爲選擇照片創建彈出窗體。在這個彈出窗體中,我可以單擊esc返回到主第二頁。

問題是,當我在彈出窗體中單擊esc時,它會關閉彈出窗體,然後返回到第一頁。即就像我點擊esc兩次。

我知道event propogation,並嘗試調用e.preventDefault();在這段代碼之前,它似乎不起作用。

有什麼我在這裏失蹤?

+1

你能告訴我們你做了什麼嗎?任何工作真的 – cjds

+1

顯示您的代碼...和這個*可點擊esc鍵* – Musa

回答

3

什麼你要找的是Event對象的stopPropagation()方法。這可以在jQuery事件處理程序中調用,但它只是普通的DOM /(純js)。所以在jQuery的:

$('#modal').on('keyup', function(e) { 
    if (e.which === 27) { 
    e.stopPropagation(); 
    // close the window 
    } 
}); 

這將繼續向上冒泡的頁面到您的其他處理程序目前回到同一事件的事件。