2010-10-04 5 views
3

Приложение, которое я создаю, использует большую таблицу с полями ввода данных для записи данных. Мне нужно дать пользователю визуальную подсказку о том, в какой строке таблицы они находятся, чтобы помочь им перемещаться по форме.jQuery parent ('tr') onFocus

В настоящее время у меня есть

onFocus="HighlightTableRow()" 

на списке. Когда пользователь нажимает или вводит табуляции в этот элемент формы, должна выделяться строка родительской таблицы. Итак, вот функция, которая вызывается OnFocus:

function HighlightTableRow(){ 
    $(this).parent("tr").addClass('RowHighlight'); 
    //alert($(this)); 
} 

две проблемы:

  1. Когда эта строка не используется (элемент формы НЕ OnFocus), то мне нужно .removeClass («RowHighlight») , Не знаете, как это сделать.
  2. Я, похоже, не могу правильно выбрать селектор. Предупреждение, которое я прокомментировал, будет срабатывать, но ничего не происходит со стилем элемента tr.

Любая помощь приветствуется. Благодаря!

+0

Спасибо за совет, JasCav. Об этом только немного ответили, но я сделал комментарии и принял ответ. – jmorhardt

ответ

14
<select name="ContactMade[]" id="ContactMade"> 

Javascript:

$("#ContactMade").focus(function() { 
    $(this).closest("tr").addClass('RowHighlight'); 
}) 
.blur(function() { 
    $(this).closest("tr").removeClass('RowHighlight'); 
}); 
+0

Это сработало отлично. Мне нужно связать его onFocus и onBlur. Я закончил тем, что добавил класс ко всем элементам таблицы, которые я хотел запустить, и это сработало отлично. Благодаря! – jmorhardt

1

Я думаю, что вы хотите изменить стиль ячеек ... давайте скажем Backgorund: попробовать определения CSS класс "RowHighlight", как:

RowHighlight td 
{ 
    background-color:red; 
} 

Итак, вы примените фон ко всем ячейкам в этой строке.

И для добавления и удаления класса в JQuery использовать ToggleClass(), вы можете найти более подробную информацию об этом на сайте JQuery

+0

Это был не полный ответ, но, в конце концов, помог мне отладить стиль. Благодаря тонну! – jmorhardt