在其内部元素函数上触发td.click函数,例如。 textbox.focus

时间:2012-01-03 01:20:41

标签: jquery textbox html-table

我在td里面有一个文本框 我希望textbox在焦点上触发td.click函数,这样我就可以获得第n行的列号以获取其文本并发送到web方法 但是用户不会点击td所以我可以实现这个吗?

$('td').click(function(){
  var col = $(this).parent().children().index($(this));
  var row = $(this).parent().parent().children().index($(this).parent());
  alert('Row: ' + row + ', Column: ' + col);
});

标记

<table>
<tr><td>e1</td>e2<td>e3</td></tr>
<tr><td>e1</td>e2<td>e3</td></tr>
<tr><td>e1</td>e2<td>Textbox</td></tr>
</table>

1 个答案:

答案 0 :(得分:0)

您可以使用element.trigger方法执行此操作。

另一个问题是让文本框引发焦点事件。 TD没有焦点状态,但在某些浏览器中,您可以通过设置tabindex属性来模拟它。也许最好使用表单元素(输入),以便默认情况下可以聚焦。

但是当你点击它时你会遇到另一个问题,因为事件会被触发两次 - 在你的点击和关注元素上。你可以玩事件冒泡,但我认为更好的方法是只在焦点上设置它。