0

在 JQuery 中使用重叠层和链接

tr________________________________________________________________________________ | td | td | td | | 复选框 | 内容 | 内容 ___________| |________|____________________________________|_______________|_a____链接_____|

我有一个填充了值的表,其中一些内容包含太多文本,因此我使用 jquery 函数来截断超过限制的文本内容。truncate 函数在文本末尾附加一个链接以取消截断/扩展文本内容。

例如“The Quick brown fox jumps over the”将显示“The Quick brown fox [more]”([more] 是展开它的链接)。

现在我的问题是我已经构建了页面以在您单击行上的任意位置(tr 标签)时选择/取消选择复选框,但我不希望当我单击链接时复选框受到影响,即因为链接(标签)与行重叠( tr 标签)。

我已经研究过使用选择器过滤掉 a 标签,并使用 span 或 div 将它们嵌入到链接下方,以防止与基本行发生任何交互。我设法使用 div 和 span 阻止点击一个区域,但它只会阻止点击如果 css 位置设置为绝对,在这种情况下,多个 div 或 span 将在一行中相互重叠,而不是在每个链接上重叠。

如果我能做这样的事情,这会更简单:

$("tr").each(function(){ if($(this).find("a").is("clicked"){ //什么都不做 }else{ if($(this).find( "tr").is("clicked"){ //切换复选框 });

} });

我只需要执行一个 if 语句来检查是否单击了行中的链接或链接并在此基础上执行操作。

4

1 回答 1

0

只需从链接的处理程序返回 false 。这将阻止链接的正常操作防止它冒泡。

 $('tr a.showMore').click( function() {
      ... expand the text or show a popup...
      return false; // don't allow it to bubble up
 });
于 2010-09-19T21:45:04.603 回答