0

我只是想在通过 Ajax 拉入的元素上使用 Jquery 的 removeClass()。我很清楚能够将 .live() 用于“单击”之类的操作,但是对于 removeClass() 之类的功能,我可以做些什么呢?

注意:我听说过可以做到这一点的 JQuery 插件,但我宁愿自己简单地使用 Jquery 对其进行编程,如果它不残酷的话。

谢谢,

丹尼尔莫尼兹

编辑:抱歉信息不足。我正在构建一个自动完成工具。用户按下一个键并获得通过 AJAX 拉入的项目列表。第一项会自动突出显示,因为(在 AJAX 回调中)我使用 .addClass() 给它“突出显示”类。

然而,如果用户点击向上或向下箭头键,他们应该能够在列表中“导航”,即。我突出显示(和取消突出显示)列表中的项目。这些操作是在按钮按下时进行的,并且列表已经通过 AJAX 拉入。因此,我无法在 Ajax 回调中删除该类。

$(".highlight")将有效地抓取当前突出显示的元素。

highlightedTopic.removeClass("highlight")

执行上述代码然后使用 后console.log($(".highlight"));,我得到了带有“highlight”类的元素的输出。所以 removeClass() 函数失败(没有错误)。

4

2 回答 2

3

假设列表中的所有项目都有类“listItem”,第一项也有“突出显示”类,比如 text text text

然后在你的 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");

   } 
});
于 2011-10-27T06:52:22.960 回答
2

在 AJAX 加载器上触发removeClass成功回调。如果您发布代码会更容易演示,但例如:

$("some element").load("someurl", function () { $("#awsmsauce").removeClass("satin shoes"); });
于 2011-10-27T03:18:20.160 回答