jQuery。不(这)不起作用

时间:2014-04-23 13:11:34

标签: jquery

我试图用jQuery在列表中显示项目信息。它工作得很好,但每当我点击已经激活的项目时,它将再次滑动和滑动。我希望它只能滑动并关闭。

这就是为什么我尝试使用.not(this)的原因,但它是无效的,我做错了吗?

这是代码:

$('#MixIt .item').on('click', function(e){
    if(e.target.localName == 'div'){
        $('.item-body').not(this).slideUp();
        $(this).next('.item-body').slideToggle();
    }
});

谢谢!

修改

想出来。

目标是'这个'但我需要这个'

的.item-body

现在的代码是:

$('#MixIt .item').on('click', function(e){
  var __this = $(this).next('.item-body');
  if(e.target.localName == 'div'){
    $('.item-body').not(__this).slideUp();
    $(this).next('.item-body').slideToggle();
  }
});

2 个答案:

答案 0 :(得分:2)

this是纯javascript的对象,你使用jquery的not方法和javascript对象

$('#MixIt .item').on('click', function (e) {
    if (e.target.localName == 'div') {
        $('.item-body').not($(this)).slideUp();
        $(this).next('.item-body').slideToggle();
    }
});

答案 1 :(得分:0)

$(this)应该像这样,

       $('#MixIt .item').on('click', function(e){
        if(e.target.localName == 'div'){  
        $('.item-body').not($(this)).slideUp(); 
        $(this).next('.item-body').slideToggle();
       } 
      });