2013-02-19 91 views
0

我寫了一個小插件來獲得元素,放入模式對話框。一旦元素被選中它被附加到身體是這樣的:觸發動作withing元素

$('body').append(overlay, modal).show(); 

不過,我只注意到我似乎無法能夠檢測到任何操作模式中的元素被點擊或選擇時。

我試過。對()和.live()無濟於事。

$(document).ready(function() { 
    $('#myLink').click(function() { 
     $('#myEl').myModal(); 
    }); 

    $('#myLink').on('click', function() { 
     alert('clicked me!'); 
    }); 
}); 

我錯過了什麼?

回答

1

嘗試:

$(document).ready(function() { 
    $(document).on('click', '#myLink', function() { 
     alert('clicked me!'); 
    }); 
}); 

理想情況下,你想使用一個選擇在DOM更接近元素比document,一個是現在時的文件已準備就緒。根據jQuery的文檔.on()

事件處理程序只綁定到當前選定的元素;他們 必須存在於網頁上的時候您的代碼調用。對()。 爲了確保元件存在,並且可以選擇,執行事件 一個文件準備處理程序內對於那些在頁面上的HTML 標記元素結合。如果新的HTML被注入頁面, 選擇的元素和新的HTML是 放置到頁面後附加的事件處理程序。