如何让jquery识别使用.on创建的动态元素?

How do I get jquery to recognize created on the fly element with .on?

本文关键字:创建 动态 元素 on jquery 识别      更新时间:2023-09-26

我有下面的代码,我使用开始动画过程:

$('body').on('click','#contain span', function(){
            var $target = $(this).parent().children('#contain_inner');
            flyout.fadeOldBox($target);
            flyout.createBox();
})

flyout.createbox()然后创建#contain_inner的新实例,但是当我上面的点击函数再次尝试瞄准它时,新实例不可用。我知道,如果我使用.live的东西会工作,但这是不赞成现在,我真的不明白我将如何使用.on来完成我需要在这里。

我知道我已经在上面使用.on进行点击,但我仍然不明白如何将其绑定到将在flyout.createBox()中创建的新的#contain_innerdiv。

编辑:显示flyout.createBox()代码…现在一切正常了!
createBox: function(){
            $box = $('<div id="feed_contain_inner"></div>'); //was accidentally creating that as div class= instead of the id
            $box.load('example')
            $box.appendTo('#contain');
            flyout.positionBox($box);
    }

与live相同:

$(document).on('click', '.yourslector', callback);

您是否将.on()设置在$(document).ready()内?只有在 $(document).ready()之外设置时,它才会触发新元素。