TD点击jQuery sum事件

时间:2010-05-26 15:33:58

标签: javascript jquery css-selectors

我有一个简单的表来模拟甘特图。这个想法是每个TD点击触发存储在隐藏输入文本(值数组)中的值的总和,在TH(TR标签的第一个子)中可用。这些值的行总和显示在最终的TD上。

接下来,代码表:

  <table width="100%" cellspacing="0" class="datagrid_ppal">
    <tbody>
      <tr class="encabezado">
        <th rowspan="2" scope="col" width="15%">Area</th>
        <th colspan="7" scope="col">Month</th>
      </tr>
      <tr class="encabezado">
        <th scope="col" width="2%">1</th>
        <th scope="col" width="2%">2</th>
        <th scope="col" width="2%">3</th>
        <th scope="col" width="2%">4</th>
        <th scope="col" width="2%">5</th>
        <th scope="col" width="2%">...</th>
        <th scope="col" width="2%">31</th>
      </tr>
      <tr>
        <th scope="row">Area 1<input name="line_config" type="hidden" value="0,5,50" /></th>
        <td class="gantt"> </td>
        <td class="gantt"> </td>
        <td class="gantt"> </td>
        <td class="gantt"> </td>
        <td class="gantt"> </td>
        <td class="gantt">...</td>
        <td class="gantt"> </td>
      </tr>
      <tr>
        <th scope="row">Area 2 <input name="line_config" type="hidden" value="0,0,10" /></th>
        <td class="gantt"> </td>
        <td class="gantt"> </td>
        <td class="gantt"> </td>
        <td class="gantt"> </td>
        <td class="gantt"> </td>
        <td class="gantt">...</td>
        <td class="gantt"> </td>
      </tr>
      <tr class="encabezado">
        <th scope="row">Total</th>
        <td class="total_dia"> </td>
        <td class="total_dia"> </td>
        <td class="total_dia"> </td>
        <td class="total_dia"> </td>
        <td class="total_dia"> </td>
        <td class="total_dia">...</td>
        <td class="total_dia"> </td>
      </tr>
    </tbody>
  </table>

值数组的工作原理如下: array [0]:关闭; 阵列[1]:术前; array [2]:Operating。

这是我用来区分预操作和可操作的单元的jQuery代码。如果单元格处于非活动状态,则该区域处于关闭状态:

$(document).ready(function() {
    $('td.gantt').click(function() {
        $(this).toggleClass('preop');
    });
    $('td.gantt').dblclick(function() {
        $(this).toggleClass('operating');
    });
});

无效TD始终与总数相加。我想做的事?简单: 1.如果未点击TD(不活动),则jQuery总是将TH输入值[0]加总。 2.当我点击或双击时,TD.gantt jQuery获取TH输入值[1],并将其添加到总数中。

如果有人可以帮助解决整个问题,那么我会非常感激。

1 个答案:

答案 0 :(得分:1)

混合“click”和“dblclick”不起作用,至少不可靠。我建议您重新进行交互,以便“点击”循环您的三种不同状态。

要做你想做的数学运算(我并不完全理解),基本问题是获得与每个点击<th>所在的列对应的<td>内容要做到这一点,你必须找到<td>与其父<tr>的哪个孩子,然后这将允许你找到<th>(带有“:nth-子“选择器,或”eq“过滤器)。