увольняет функцию td.click на ее внутренних элементах, например.textbox.focus - PullRequest
0 голосов
/ 03 января 2012

У меня есть текстовое поле внутри td. Я хочу, чтобы текстовое поле запускало функцию td.click в фокусе, чтобы я мог получить номер строки n столбца, чтобы получить его текст и отправить в веб-метод, но пользователь не будет нажимать 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 голосов
/ 03 января 2012

Существует метод element.trigger , который вы можете использовать для этого.

Другая проблема состоит в том, чтобы получить текстовое поле, которое вызывает событие фокуса. TD не имеет состояния фокуса, но в некоторых браузерах вы можете эмулировать его, установив атрибут tabindex. Может быть, лучше использовать элементы формы (входные), чтобы они могли быть сфокусированы по умолчанию.

Но при щелчке по нему у вас возникнет другая проблема, чем событие будет запущено два раза - по вашему щелчку и при фокусировке элемента. Вы можете поиграть с всплывающими событиями, но я думаю, что лучший способ - установить его только на фокус.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...