Jquery td点击

时间:2009-08-26 20:02:07

标签: jquery

我目前正在使用jquery将所有td链接到编辑链接,但我希望能够仅使用编辑类来定位td,并且我需要链接来查找带有编辑操作类的标记。 / p>

任何帮助都会很棒!

当前代码:

$("tr.edit").click(function(){
    if(!clicking)
    {
        clicking = true;
        $('a.edit-action', this).click();
        clicking = false;
    }
});



<table align="center" width="100%" id="Table" >
    <tr>
        <th width="20%">col 1</th>
        <th width="20%">col 1</th>
        <th width="25%">col 1</th>
        <th width="25%">col 1</th>
        <th width="10%">col 1</th>
    </tr>
    <tr class="edit">   
        <td width="20%" class="edit">name</td>
        <td width="20%" class="edit">type</td>
        <td width="25%">other 1</td>
        <td width="25%">other 2</td>
        <td width="10%" class="action"><a href="#" class="dialog edit-action">Edit</a><br>Another delete link here</td>

    </tr>
</table>

3 个答案:

答案 0 :(得分:4)

使用.live,比拥有数百个单独的点击事件更好。

另请注意,您无法模拟用户单击锚点以打开新页面,但它将在锚点上运行任何脚本单击处理程序。

$("td.edit").live('click', function(){
        $(this).parent().find('a.edit-action').bla
});

答案 1 :(得分:1)

修改第一个选择器以仅选择具有编辑类的单元格。

$("td.edit").click(function(){
        if(!clicking)
        {
                clicking = true;
                $('a.edit-action', this).click();
                clicking = false;
        }
});

此外,如果为click事件创建单独的函数处理程序,您应该能够摆脱'click'状态变量。 E.g。

$('a.edit-action').click(editActionLinkClicked);

$("td.edit").click(editActionLinkClicked);

修改

再考虑一下,使用事件委托。

$('#table').click( //Fired when user clicks any element on the table
   function()
   {
       if($(this).hasClass('edit-action') || $(this).hasClass('edit'))
       {
            //Your click event logic. 
            //You don't have to keep track of state or anything. 
       }
   }
);

答案 2 :(得分:0)

$("tr .edit").click(function(){
        if(!clicking)
        {
                clicking = true;
                $(this).find(".edit-action").click();
                clicking = false;
        }
});