事件绑定到动态创建的元素

时间:2012-08-27 05:57:55

标签: javascript jquery

我有一个文本框#search_text。在keyup上我创建了一个div#sresult_container。并将一个div附加到div#sresult_container。当这个容器显示在画布上时,我尝试将click和mouseover事件绑定到div#sresult_container。我尝试下面的代码但不起作用。我该怎么办?

$("#search_text").keyup(function(e) {
    if (e.which != 40 && e.which != 38) {
        $("#search").removeAttr('disabled');
        $.post('http://www.allinone.com', {
            Search: sVal
        }, function(data) {
            $sresult_container = $('<div id="sresult_container"></div>');
            //somecode which create another divs and append to the $sresult_container
        })
    }

    $('#sresult_container').bind({
        click: function(e) {
            //some code  
            },
            mouseover: function(e) {
                //some code
            }
        });
    });

2 个答案:

答案 0 :(得分:2)

$('#someParent').on('click', '.someChildSelector', function(e){
});

收听与click匹配的#someParent个与指定(即。.someChildSelector)选择器匹配的事件。

因此,来自您附加的所有子元素的事件将被上述处理程序捕获。

答案 1 :(得分:-2)

您可以使用“live”功能执行此任务。

$('#sresult_container').live('click', function() {
    alert('hello from binded function call');
});