0

这是页面: http: //nm-bootstrap.gydev.com/course-delivery.php

标题行上的 V 形切换图标和书签图标都添加到第一个 th 之前。如果单击带有 th 的 tr,我有一些 js 可以切换以下行。

问题是我需要<a>从事件中排除该书签(具有“书签-this”类),因为有人需要能够在不切换下面的行的情况下为整个部分添加书签。因此,除了书签之外的整行都应该触发事件。

这是使它工作的jQuery

$("#table-modules tbody tr:not(.section-title)").hide();

$("#table-modules tbody tr.section-title").click(function(){
    $(this).nextUntil('tr.section-title').toggle().end()
        .find('.icon-chevron-right').toggle().end()
        .find('.icon-chevron-down').toggle();
});

$(".bookmark-this").click(function(){
    $(this).find('.icon-bookmark-empty').toggle().end()
        .find('.icon-bookmark').toggle();
});

这里是前 2 行渲染的 html

<tr class="section-title" style="cursor: pointer; ">
<th><i class="icon-chevron-right grayLight"></i><i class="icon-chevron-down grayLight" style="display: none; "></i><a class="bookmark-this"><i class="icon-bookmark-empty grayLight"></i><i class="icon-bookmark red" style="display: none; "></i></a>1. Introduction</th>
<th>&nbsp;</th>
<th>11:53</th>
</tr>
<tr style="display: none; ">
<td style="padding-left: 45px; "><a class="bookmark-this"><i class="icon-bookmark-empty grayLight"></i><i class="icon-bookmark red" style="display: none; "></i></a><a href="#">How to take an online course</a></td>
<td><img src="/img/icons/check-sm.png" width="16" height="13" alt="yes"></td>
<td>6:32</td>
</tr>

我该怎么办?

4

2 回答 2

2

尝试添加stopPropagation到点击处理程序.bookmark-this

$(".bookmark-this").click(function(e){ e.stopPropagation() });
于 2012-08-01T15:31:13.400 回答
1

你可以使用 not 选择器

$("#table-modules tbody tr.section-title:not(.bookmark-this)").click
于 2012-08-01T15:32:09.770 回答