为什么我的对话框只能工作一次?

时间:2012-01-20 18:23:15

标签: jquery

我有一个对话框,其中有两个按钮,一个继续,一个取消。

$(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');
    });

});

它工作得很好,(第一次)我的所有数据都存在,当我点击取消,它关闭,但如果我再试一次取消不再做任何事情。有谁知道我做错了什么?拜托,谢谢

2 个答案:

答案 0 :(得分: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 = message创建一个空div并尝试更新的代码。

答案 1 :(得分:0)

每次单击resetPwd元素时,都会创建一个新的对话框对象。

您应该在Click处理程序之外创建对话框,并使用open和close方法引用它。