如何使选择器“实时”,以便它适用于新插入的DOM元素?

时间:2011-01-23 19:08:53

标签: javascript jquery

我正在尝试这样做:

$(".someClass").datepicker();

但是当有人点击某个按钮时,DOM或者这个类会动态地插入到页面中,所以这就是我猜测上面代码无效的原因。

如何在加载后将新插入的元素添加到页面中?

5 个答案:

答案 0 :(得分:5)

$(".someClass").live('yourTrigger',function(){

// your logic here
//$(".someClass").datePicker():

});

答案 1 :(得分:0)

window.onload=function(){
    $(".someClass").datepicker();
}

答案 2 :(得分:0)

您可以使用live(),或者只是在现有处理程序中调用该行来创建元素和/或为其分配someClass

答案 3 :(得分:0)

$("#updateSomeOfTheDom").live("click", function() {

    // init the datepicker in $.load, $.get or $.post's callback
    $("#section").load('/update.html', function(response) {
        $(response).find('.someClass').datePicker();
    });
});

答案 4 :(得分:0)

你只能挂钩某个元素上的某些事件,但奇怪的是它们包含在dom中并不是一个事件。虽然我觉得这很令人费解,但有一个简单的解决方案

$(".someClass").livequery(function() { $(this).datepicker();});

安装此插件后 http://plugins.jquery.com/project/livequery

或者我发现了这个:

http://www.erichynds.com/jquery/jquery-create-event/

https://github.com/ehynds/jquery-create-event

或其最新的分支

https://github.com/yumok/jquery-create-event