Jquery 我是否错误地添加了此事件侦听器上的.on?

Jquery 我是否错误地添加了此事件侦听器上的.on?,jquery,Jquery,我正在尝试向动态创建的元素添加一个.on事件,但它似乎不起作用 我的表格呈现正确,但当我单击我的exp\u coldiv时,没有发生任何事情,甚至没有错误消息 我有没有做错什么 jQuery.each(items, function(index, item) { jQuery('<tr>') .addClass('item_class') .append( jQuery('<

我正在尝试向动态创建的元素添加一个
.on
事件,但它似乎不起作用

我的表格呈现正确,但当我单击我的
exp\u col
div时,没有发生任何事情,甚至没有错误消息

我有没有做错什么

    jQuery.each(items, function(index, item) {
        jQuery('<tr>')
            .addClass('item_class')
            .append(
                jQuery('<td/>')
                    .addClass('text')
                    .text('XXX')
                    .append(
                        jQuery('<div />')
                            .addClass('exp_col')
                            .text('More...')
                    )
                )

            .append(jQuery('<td/>').addClass('info').text('yyy'))
        .appendTo(table);

    });

    table.on("click", ".exp_col", function(e) { 
        myFunc( this );
    });
    table.appendTo(div);

我的总体目标是打开和关闭两个函数。

事件处理程序仅绑定到当前选定的元素;在代码进行事件绑定调用时,它们必须存在于页面上

委派事件的优点是,它们可以处理来自子元素的事件,这些子元素将在以后添加到文档中

动态创建元素时。

你需要使用。您必须使用委托事件方法

一般语法

$(document).on(event, selector, eventHandler);
根据您的代码使用:

//Move the event handler outside each block
table.on("click", ".exp_col", function() { 
    console.log('test');
});
table.appendTo(div);

很好用!干杯!!我想知道你能不能把你的答案稍微扩大一点?我已经编辑了上面的问题。@Daft,你想用
myOtherFunc
做什么?您是如何使用它的,在哪里使用它的?
myOtherFunc
将执行一些CSS操作,再次添加
myFunc
,然后将其自身删除。因此,如果我连续单击exp\u col,它将在这两个函数之间来回切换。
//Move the event handler outside each block
table.on("click", ".exp_col", function() { 
    console.log('test');
});
table.appendTo(div);