如何从动态html结果执行javascript函数? jQuery的

时间:2009-08-11 14:58:41

标签: javascript jquery ajax

请看一下这段代码 -

当我点击myLink时,我得到一个模态对话框窗口,显示如下定义的html。这个html包含一个按钮(id = test_button),当我点击这个按钮时,我想做一个ajax请求。 但它不起作用。所以为了测试它,我只是在做一个警报,但它不会工作。

还可以从test_button点击功能中更新现有的dom元素值(只填充表单)。

感谢您的帮助。

$('#myLink').click(function(event) {
    event.preventDefault();
    $('<div id="iContainer">Test: <input type="text" value="" id="test_text" /> 
        <input type="button" id="test_button" value="click" /></div>').appendTo('body');        
    $("#iContainer").dialog({                   
        width: 600,
        modal: true,
        close: function(event, ui) {
            $("#iContainer").remove();
            }
        });
    });
    $('#test_button').click(function() {
        alert('I am in Alert');
        //alert($('#test_text').val());
    });

2 个答案:

答案 0 :(得分:2)

尝试Events/live

$('#test_button').live("click", function(){
  alert('test');
});

答案 1 :(得分:1)

问题是您在元素存在之前尝试附加单击处理程序。

如CMS所述,您可以使用.live(),也可以在$('#myLink')中添加点击处理程序.Click()函数

像这样:

$('#myLink').click(function(event) {
        event.preventDefault();
        $('<div id="iContainer">Test: <input type="text" value="" id="test_text" /> 
                <input type="button" id="test_button" value="click" /></div>').appendTo('body');                
        $("#iContainer").dialog({                                       
                width: 600,
                modal: true,
                close: function(event, ui) {
                        $("#iContainer").remove();
                        }
                });

        $('#test_button').click(function() {
                alert('I am in Alert');
                //alert($('#test_text').val());
        });
});