2012-01-20 98 views
0

我有一個對話框,它有兩個按鈕,一個繼續,一個取消。爲什麼我的對話框只能工作一次?

$(document).ready(function(){ 
$("[name=resetPwd]").click(function(){ 
    var id = $(this).attr("userid"); 
    var email = $("[field=emailAddress].[userid="+id+"]").text(); 
    var name = $("[field=firstName].[userid="+id+"]").text(); 

    var message = $('<div></div>') 
    .html('You are about to reset the password for:<br/>'+name+'.<br/>This will send an e-mail to:<br/>'+ 
      email+'<br/><br/><input id="_continue" type="button" value="Continue" /> <input id="_cancel" type="button" value="Cancel" />') 
    .dialog({ 
     title: 'Reset Password' 
    }); 

    message.dialog('open'); 


    $("#_cancel").click(function(){ 
     message.dialog('close'); 
    }); 

}); 

它工作得很好,(第一次)我所有的數據是存在的,當我點擊取消,它關閉,但如果我嘗試再次取消犯規了做任何事情。有誰知道我做錯了什麼?請致電

回答

0

您每次單擊resetPwd元素時都會創建一個新的對話框對象。

您應該在點擊處理程序外部創建對話框,並使用打開和關閉方法引用它。

+0

當我在點擊處理程序之外創建對話框時,它會在每個頁面上自動打開。有沒有辦法讓它只能用於這一頁即時工作? – Dagron

+0

謝謝你一直工作 – Dagron

+0

不客氣。真高興你做到了。 – BZink

1

嘗試將$("#_cancel").click移出$("[name=resetPwd]").click正文函數。此外,您沒有正確地結束$(document).ready函數。

試試這個:

$(document).ready(function(){ 
    $("[name=resetPwd]").click(function(){ 
     var id = $(this).attr("userid"); 
     var email = $("[field=emailAddress].[userid="+id+"]").text(); 
     var name = $("[field=firstName].[userid="+id+"]").text(); 

     var message = $('#message') 
     .html('You are about to reset the password for:<br/>'+name+'.<br/>This will send an e-mail to:<br/>'+ 
       email+'<br/><br/><input id="_continue" type="button" value="Continue" /> <input id="_cancel" type="button" value="Cancel" />') 
     .dialog({ 
      title: 'Reset Password' 
     }); 

     message.dialog('open'); 
    }); 
    $("#_cancel").click(function(){ 
     $('#message').dialog('close'); 
    }); 
}); 

編輯:創建一個ID =消息的空div並嘗試更新的代碼。

+0

我認爲,如果我已經取消點擊處理程序之前,甚至是按鈕,處理程序不會找到它們..這是真的嗎?我認爲這是因爲按鈕只是不工作...我應該做一個當前2答案的混合? – Dagron

相關問題