2013-03-01 22 views
0

我已經包括在我的application.js文件中的單擊事件:在RoR中使用jQuery將事件綁定到動態創建的按鈕的正確方法是什麼?

$('#test_container').on('click', '#test_button', function(event){ 
    alert("HI"); 
    event.preventDefault(); 
    }); 

我在動態我的應用程序創建通過部分該按鈕。事件從未發生過。我認爲jQuery的on適用於動態創建的東西。有什麼我在這裏失蹤?

我知道live,我相信它的工作原理,但它的折舊,所以我試圖不使用它。

+0

是'#'test_button'#test_container'的後裔?該代碼運行時是否可以使用'#test_container'? – Musa 2013-03-01 01:52:53

+0

是的,#test_button是#test_container的後代。 #test_container在初始頁面加載中可用。我從不改變#test_container。 – perseverance 2013-03-01 01:53:55

+0

你需要首先防止默認,然後提醒。 – 2013-03-01 01:49:34

回答

2

哇抱歉的.live()

然後你用你的.on()錯誤。

$(document).on("click", '#test_button', function(){ 
    alert("Goodbye!"); 
}); 

.live()的頁面展示如何轉換爲.on()

http://api.jquery.com/live/

+0

我避免使用'live',因爲它是折舊的。 – perseverance 2013-03-01 01:52:41

+0

我更新了我的答案 – 2013-03-01 01:55:19

+0

可以將它附加到'document'嗎?這會傷害表現嗎? – perseverance 2013-03-01 01:56:05

相關問題