jQuery停止传播移动<a> href to tr click in table</a>

时间:2013-08-02 10:32:05

标签: jquery html

我有一张桌子,

<table id="theTable">
    <tr><th>Theader</th><th></th></tr>
    <tr class="ahover">
    <td><a href="pankaka">Im a link</a></td>
    <td>Im a td in a tr</td></tr>
    <tr class="DarkBackground">
    <td><a href="pankaka">Im a link</a></td>
    <td>Im a td in a tr</td></tr>
</table>

我希望每个<tr>都可以点击,它应该导航到每行第一个td中的href。

这就是我试过的

$('table tr td:first-child a').each(function(){ var StopProp = Function('event', this.href.substring("javascript:".length) + ';
if(event.stopPropagation)    {event.stopPropagation();
    } else{
        event.cancelBubble = true;
    }'
);
    this.href = '#';
    $(this).click(StopProp);
});
$('.DarkBackground, .ahover').click(function(){
    $('#" + LeadsGridview.ClientID + " tr td:first-child a').unbind('click');
    $(this).find('a').click();
});

这个很好起初,我的同事帮助我(我在理解第一行时遇到了问题,所以我无法修复它)。但随后又出现了一些问题,我又得到了“过多的递归”。

我读了很多不同的主题来找到答案,这似乎正在缩小:jQuery Click Stop Propagation但我不确定如何将它应用于我的问题。我试过这个小提琴here

经过一些研究后,我发现你可以通过代码隐藏来做到这一点。 (该表是<asp:Gridview>,它从数据库中获取数据到每一行。这会是一个更好的解决方案吗?

1 个答案:

答案 0 :(得分:0)

尝试

$('#theTable tr:not(:first)').click(function(){
    window.location = $(this).find('td:first a').prop('href');
    return false;
})