点击<tr>时触发子元素的单击事件

4

你的 tr 点击事件触发了吗?也许你需要使用事件委托。 - Johan
是的,问题已经得到解答。 - BlekStena
为什么不直接将锚点标签添加在你的<tr>元素内呢? - dreamweiver
@dreamweiver 你会怎么做呢?因为锚点标签不能直接作为TR的子元素。 - A. Wolff
1
理论上,这个概念应该会触发一个无限循环。如果你点击“测试”,点击事件将冒泡到行。然后你捕获它,并在链接上触发一个点击事件,这将冒泡到行... - j08691
3个回答

5

调用本地DOM点击方法:

$(this).find('td.first a').get(0).click();

因为jQuery不会触发锚点标签上的原生点击方法。 - A. Wolff
@BlekStena - 回答你的问题,为什么你的方法不起作用,.children() 只会查看 DOM 的一层子元素,所以 .children('td.first a') 不会匹配任何内容,因为只有 td (或 th) 元素可以成为 tr 元素的子元素。 - j08691
1
@j08691 这是正确的,但即使在锚点上调用jQuery的点击方法也不会进行任何重定向,默认行为。 - A. Wolff

2
如果我没记错的话,jQuery的 click() 只对已附加有 jQuery click 处理程序的元素有效,而你的没有。也许尝试强制触发本地浏览器的点击事件的替代方法是找到链接的 href 并通过导航到它来 模拟 点击:
$('tr').click(function() {
    window.location = $('td.first a', this).attr('href');
});

-1
使用jQuery的trigger方法。
$('tr').click(function() {
    $(this).children('td.first a').trigger( "click" );
});

谢谢。


3
trigger('click') 只是 click() 的长版本。我认为在这里它不起作用。 - Cᴏʀʏ

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接