2012-11-14 89 views
0

我正在將'password-reset-success-message'div動態加載到'password-reset'div中,如下面的片段所示。 在頁面加載上隱藏'password-reset-success-message'div,並被覆蓋爲'password-reset'div,如下所示。Jquery單擊事件不會觸發先前隱藏的div

$("#password-reset").html($("#password-reset-success-message").html()); 

現在的「密碼重置成功 - 消息」 div有一個「btnPasswordResetOK」按鈕,將關閉密碼重置模式dialog.But這個點擊()事件沒有得到綁定。我沒有收到警報消息。我正在把所有這些包裹在文檔裏面。

 $(document).ready(function(){ 

     $("#btnPasswordResetOK").click(function() { 

     alert(); 
     }); 

    }); 

注意:This question is almost similar to my question.。但沒有答案。

更新:我用隱藏的div更新html之後綁定,它的工作原理!下面

 $("#password-reset").html($("#password-reset-success-message").html()); 

     $("#btnPasswordResetOK").click(function() { 

      alert(); 
     }); 
+0

需要看到您的HTML請。 – Lowkase

+1

是#password-reset-success-message html的#btnPasswordResetOK部分嗎?如果您在更新了html之後綁定了按鈕,或者您更改了點擊生活,會發生什麼情況? – cbillowes

+0

@kleinkie yes #btnPasswordResetOK按鈕位於隱藏div內,我會嘗試綁定HTML更新後的按鈕並恢復爲您。 – cherit

回答

2

委託給你,如果使用jQuery 1.7+用。對()

$("#password-reset").on('click','#btnPasswordResetOK',function(){ 

}) 

與委託

$("#password-reset").delegate('#btnPasswordResetOK','click',function(){ 

}) 

從jQuery的文檔上添加HTML到

父元素使用哪種方法

$(選擇器)。活(事件,數據,處理程序); // jQuery 1.3+

$(document).delegate(selector,events,data,handler); // jQuery 1.4.3+

$(document).on(events,selector,data,handler); // jQuery的1.7+

通過委派,你的事件處理程序綁定到不改變,並在結合時存在的靜態父元素。您指定要監聽的元素和事件,當事件冒起時,它將由靜態父元素處理。

0

代碼片段嘗試使用'live'

$(document).on(events, selector, data, handler); 
+1

在您的鏈接狀態中,「live」已折舊。應該用'on'代替 – SlashmanX

+0

更正,謝謝! – bwicklund

1
$(selector).live(events, data, handler);    // jQuery 1.3+ 
$(document).delegate(selector, events, data, handler); // jQuery 1.4.3+ 
$(document).on(events, selector, data, handler);  // jQuery 1.7+ 

你的內容是不是有在頁面上時被觸發ready事件。您可以動態生成元素和內容,因此您必須使用live/on事件處理程序。