Как я могу использовать removeClass Jquery для элемента, который находится в ajax? - PullRequest
0 голосов
/ 27 октября 2011

Я просто пытаюсь использовать removeClass () в Jquery для элемента, который извлекается через Ajax.Мне хорошо известно, что я могу использовать .live () для таких действий, как 'click', но что я могу сделать для таких функций, как removeClass ()?

Примечание: я слышал о плагинах JQuery, которые могут это делать, но я бы просто запрограммировал его сам, используя Jquery, если это не брутально.

Спасибо,

Даниэль Мониз

Редактировать: Извините за отсутствие информации.Я работаю над созданием инструмента автозаполнения.Пользователь нажимает клавишу и получает список предметов, извлеченных через AJAX.Первый элемент автоматически выделяется, потому что (в обратном вызове AJAX) я использую .addClass (), чтобы присвоить ему класс 'highlight'.

Если пользователь нажимает клавишу со стрелкой вверх или вниз, однако, он должен бытьвозможность «навигации» по списку, т.е.Я выделяю (и не выделяю) элементы в списке.Эти действия выполняются при нажатии кнопки, и список уже был получен через AJAX.Поэтому я не могу удалить класс в обратном вызове Ajax.

$(".highlight") эффективно захватит выделенный в данный момент элемент.

highlightedTopic.removeClass("highlight")

После выполнения приведенного выше кода и последующего использования console.log($(".highlight"));Я получаю вывод элемента с классом 'highlight'.Поэтому функция removeClass () не работает (без ошибок).

Ответы [ 2 ]

3 голосов
/ 27 октября 2011

предполагается, что все элементы в списке имеют класс "listItem", а первый элемент также имеет класс "выделение" что-то вроде Текст Текст текст

тогда в вашем JS попробуйте это

$(".highlight").live("keyup",function(e){
  if(e.keyCode==38)//up key 
  {
   $(this).removeClass("highlight");
   $(this).prev(".listItem").addClass("highlight");
   }
  else if(e.keyCode==40)//down key
  {
   $(this).removeClass("highlight");
   $(this).next(".listItem").addClass("highlight");

   } 
});
2 голосов
/ 27 октября 2011

Запустите removeClass в случае успешного обратного вызова на загрузчике AJAX. Было бы проще продемонстрировать, если вы разместили свой код, но, например:

$("some element").load("someurl", function () { $("#awsmsauce").removeClass("satin shoes"); });
...