我目前正在使用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>
答案 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;
}
});