2013-11-13 7 views
0

У меня проблемы с выборами JQuery. У меня есть обработчик кликов, который обрабатывает логику, когда пользователь щелкает строку в таблице. Однако, когда некоторые из этих строк будут нажаты, логика щелчка обнаружит, что у них неверные данные, и я хотел бы их очертить. Я делаю это, добавляя соответствующий класс CSS, чтобы превратить свой текст в серый цвет (и в противном случае отключить их).Выбор цели события из встроенных функций

Моя основная структура что-то вроде:

$('#tableInfo tr').live('click', function(){ 

    function doStuff(){ 
     //Ajax call 
     $.ajax({ 
     ... 
     ... 
     )}.success(function(){ 
      ... 
     } else { 
      var target = $(event.target); 
      target.addClass('disabled'); 
     } 
    }); 
}); 
var information = $(#misc-information) 
doStuff(information) 

Это основная идея, по крайней мере. Меня волнует материал в блоке else, который не работает так, как я должен. Я провел некоторое исследование того, как справиться с такой логикой, и event.target показался именно тем, что я искал для выбора текущего происхождения события (строка, на которую была нажата кнопка, которую я хочу отключить). Я вложен внутри обработчика событий, и я выбираю цель события, но это ничего не делает, и я не знаю, почему.

Любая помощь приветствуется.

+0

ли это пишется 'tarrget' в вашем реальном коде? Кроме того, какую версию jquery вы используете. 'live' давно устарел и с тех пор полностью удалился. –

+0

Вероятно, нужно перейти к использованию '.on()' вместо '.live()' здесь в 2013 году ... – Pointy

+0

'tarrget' был всего лишь типом. Я просто «обобщил» общую идею гораздо более длинного кода здесь, чтобы удалить весь пух. – UpQuark

ответ

1

Вы не сдадите объект события и цель опечатка

$('#tableInfo tr').live('click', function(event){ // event param here 

    function doStuff(){ 
     //Ajax call 
     $.ajax({ 
     ... 
     ... 
     )}.success(function(){ 
      ... 
     } else { 
      var target = $(event.target); // typo here 
      target.addClass('disabled'); 
     } 
    }); 
}); 
+0

Отлично, событие, не пройденное, было именно той проблемой. – UpQuark

Смежные вопросы