jQuery On函数用于未来元素?

Roy*_*mir 23 jquery

$("#dataTable tbody").on("click", "tr", function(event){
    alert($(this).text());
});
Run Code Online (Sandbox Code Playgroud)

这个语法是针对已经在页面上的tr吗?

如果没有,未来tr元素的语法是什么?

Dav*_*ing 50

对于未来的元素#dataTable tbody,您的代码应该可行.要将点击一直委托给文档,<tr>在页面的任何位置允许使用相同的处理程序,请尝试:

$(document).on("click", "tr", function(event){
    alert($(this).text());
});
Run Code Online (Sandbox Code Playgroud)

  • 是的,只要插入的元素位于绑定事件的元素内. (5认同)

sup*_*ajb 5

添加到 Davids 接受的答案,您还可以使用此解决方案将多个事件绑定到选择器以及所有未来匹配元素。

例如输入元素。

$(document).on({
    focus:function(){
        alert($(this).val());
    },
    blur: function(){
        alert($(this).val());
    }
}, 'input[type=text]');
Run Code Online (Sandbox Code Playgroud)