У меня проблемы с выборами 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 показался именно тем, что я искал для выбора текущего происхождения события (строка, на которую была нажата кнопка, которую я хочу отключить). Я вложен внутри обработчика событий, и я выбираю цель события, но это ничего не делает, и я не знаю, почему.
Любая помощь оценивается.
вы не передали объект события, а цель была написана с ошибкой
$('#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');
}
});
});
tarrget
в вашем реальном коде? Кроме того, какую версию JQuery вы используете.live
давно устарела и с тех пор полностью удалена..on()
вместо.live()
здесь в 2013 году ...