我有一个表,
<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();
});
这很好一开始,我的同事帮我做了is(不过我在理解第一行时遇到了问题,所以我无法修复它)。但后来有些东西坏了,我又一次得到了"太多递归"。
我阅读了很多不同的线程来寻找答案,这似乎很接近:jQuery点击停止传播,但我不确定如何将其应用于我的问题。我试过这把小提琴。
经过更多的研究,我发现你可以通过codebehind做到这一点。(该表是一个<asp:Gridview>
,它从数据库中向每一行提取数据。这是一个更好的解决方案吗?
尝试
$('#theTable tr:not(:first)').click(function(){
window.location = $(this).find('td:first a').prop('href');
return false;
})