2013-05-06 74 views
0

我正在創建動態元素,並且在單擊另一個按鈕時,需要執行動態生成的元素上的單擊事件。我知道on() jquery方法具有這樣的功能,但不知道如何在我的上下文中應用。如果有人能幫忙,我會很高興。在動態創建的元素上觸發

HTML代碼:

<h2></h2> 
<button>generate new element</button> 
<p class="generateEvent">Event</p> 

我的jQuery代碼:

$(function(){ 

    $("button").click(function() { 
     $("h2").html("<p class='test'>click me</p>") 
    }); 

    $('.generateEvent').click(function(){ 
     $("p").trigger("click", function(){ 
      alert('you clicked me again!'); 
     }); 
    }); 
}); 
// Method two: 

http://jsfiddle.net/PzSYM/399/

+1

你想用'.trigger()'調用什麼? – 2013-05-06 06:11:18

+0

事實上,我正在觸發點擊事件 – 2013-05-06 09:02:16

回答

-1

試試這個,

$("p").bind("click", function(){ 
alert('you clicked me again!');}) 

http://jsfiddle.net/sCgCj/

+0

-1 - 如果'p'是動態創建的,則這不起作用。 – Dom 2013-05-07 06:05:18

3

您可以通過結合該事件,其中已經在頁面上,當你第一次加載頁面的目標的父容器使用on()。像這樣:

$('#parent').on('click','.target',function(){ 
    //do something.. 
}); 
+0

我第二次,'on()'是最新的jquery函數。像'live ()'這樣的其他函數已被棄用或移除到最新的jquery庫中... – Olrac 2013-05-06 06:38:11

+0

實際上,這是我想要的簡化版本。我實際上是創建一個自定義事件login.validate並使用trigger()調用事件,但對於動態元素,它不起作用 – 2013-05-06 18:18:03

+0

這是你的意思:http://jsfiddle.net/PzSYM/393/? – 2013-05-07 01:24:09