jQuery .on不适用于动态添加的元素

时间:2017-06-19 22:57:01

标签: javascript jquery

我正在测试一些功能,我试图这样做,一旦我将鼠标悬停在一个特定元素上(在这个例子中是任何链接),它将在控制台内输出一些内容。

我看过这个答案 - > here其中显示“您可以定义一次函数,它将针对任何动态添加的元素执行”

所以我有这个js脚本,但是一旦元素被动态加载,就像youtube视频一样,但是一旦我将鼠标悬停在新添加的元素上,这个脚本将无效,控制台内部无输出。

checksum

我在这里错过了什么吗?

1 个答案:

答案 0 :(得分:1)

绑定元素的方式用于将多个事件处理程序绑定到相同的元素。如果它们是动态添加的,那么您将不得不求助于事件委派。将事件绑定到绑定事件时存在的父元素的位置。

$( "body" ).on('click', 'a', function() {
    console.log('clicked');
});

$( "body" ).on('mouseenter', 'a', function() {
    console.log('enter');
});

$( "body" ).on('mouseleave', 'a', function() {
    console.log('left');
});

您可以将body替换为事件绑定时出现的a最近的父亲。