javascript - 尝试向 delegate() 添加层次结构约束

标签 javascript jquery

我有一个委托(delegate)声明,其工作原理如下:

$("body").delegate("tr[type='option']",'mouseenter',function(){

问题是它从我不想要的表中获取元素。所以我尝试了:

$("body").delegate("table[class='ms-MenuUI'] > tr[type='option']",'mouseenter',function(){

这根本不起作用(尽管我没有收到任何控制台错误)。只是想知道如何加强这一点,以便它只从我想要的特定表中获取表行。

注意:页面加载时,该表不存在于 DOM 中,并且在文档准备好后动态创建/销毁,因此需要委托(delegate)。

编辑: 根据我下面的评论,我使用 [] 是因为父级的属性是可变的,并且我的理解是它们应该与属性简写(即“.”)互换使用。动态代码示例如下:

$('body').delegate('table[' + parentAttribType + "='" + parentAttribValue + "'] > tr[" + rowAttrbType + "='" + rowAttribValue + "']"), 'mouseenter', function(){

谢谢!

最佳答案

使用此功能,事件处理程序将使用“tr td”作为其事件目标绑定(bind)到表。

$('table[class=ms-MenuUI]').delegate('tr td', 'mouseenter', function() {

});

仅供引用-

如果您要使用 $('body').delegate('', ) 那么最好使用 .live()无论如何,它将事件处理程序绑定(bind)到文档级别。

编辑:抱歉没有阅读您的整个帖子,请将事件委托(delegate)给包含表格的元素,或使用 .live()。

关于javascript - 尝试向 delegate() 添加层次结构约束,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4018021/

相关文章:

javascript - jQuery 中未定义的全局变量

jquery - 使用 jquery 动画并将 div 滚动到顶部

javascript - 从 Bootstrap 模态对话框触发单击事件

javascript - jQuery 验证未按预期工作

jquery - 如何使用 css 或 jquery 显示隐藏的 div 并更改大小?

javascript - 这段代码:中javascript中的$符号是什么

javascript - 在 React 中将状态数据从父级更改为子级后如何立即获取状态数据?

javascript - Vue.js 2 - 从服务器检索表单元素并呈现 CRUD

javascript-在文本区域中插入文本后添加换行符

javascript - 单击单选按钮后如何检查单选按钮是否已被选中?