【问题标题】:Change current li class (the one who is clicked)更改当前 li 类(被点击的那个)
【发布时间】:2013-09-23 13:34:49
【问题描述】:

由于 java servlet,我现在有许多由循环生成的 li(list) 项 我想更改当前选中的 li(list) 的类

      $('li.doBlokkeer').click(function(e) {
    $('.doBlokkeer').addClass('doDEBlokkeer').removeClass('doBlokkeer');
      });

因此,如果选择了当前 li,则需要更改其类(它需要具有 doDEBlokkeer)。 上面的代码有效..但它改变了我所有的 li 项目......所以你们知道如何改变当前项目 $(this) 的类吗?我没有jquery技能,请帮帮我。谢谢!!

【问题讨论】:

  • $(this).addClass(....
  • 请注意,删除类不会删除事件处理程序。

标签: javascript jquery list class dom


【解决方案1】:

您需要在点击事件处理程序中使用$(this) 而不是$('.doBlokkeer')$('.doBlokkeer') 将返回所有具有 doBlokkeer 类的元素,其中 $(this) 表示作为事件源的 jQuery 对象。

Live Demo

$('li.doBlokkeer').click(function(e) {
   $(this).addClass('doDEBlokkeer').removeClass('doBlokkeer');
});

您也可以尝试使用toggleClass 在两个类之间切换。

Live Demmo

$('li.doBlokkeer').click(function(e) {        
   $(this).toggleClass('doDEBlokkeer');
});

【讨论】:

  • 我认为这是解决方案,但它似乎不起作用..您的代码没有任何反应。如果我将“this”更改为“doBlokkeer”,我的所有 LI 项目都会更改..但我需要更改当前(this)。还有其他解决方案吗?可能是什么原因?
  • 你能给我们看看 html 吗?看看这个演示,jsfiddle.net/ajvS2 和我更新的安德
  • 阿迪尔,第一个答案是正确的。我搞砸了,因为我的 LI 类中有一个具有相同类名的 。这引起了问题。我删除了 a href 类并将其全部放在列表类中。现在它完美地工作了!谢谢
  • 实际上这只工作一次,当我点击 li.doBlokkeer 时类会发生变化,这很好,但是当我再次按下相同的当前 li 时,它会调用相同的函数 li.doBlokkeer 而不是 li。 doDEBlokkeer 函数(尽管有 css 类)。我尝试了很多东西,但我真的找不到任何解决方案。你们能帮帮我吗?
  • 请使用toggleClass检查我的答案中给出的第二个解决方案jsfiddle.net/ajvS2/1
猜你喜欢
  • 1970-01-01
  • 2020-10-11
  • 2018-05-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-08-12
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多