2014-04-23 57 views
-3

我試圖用jQuery在列表中顯示項目信息。它工作得很好,但每當我點擊一個已經激活的項目時,它會再次滑動和滑動。我希望它只能滑動並關閉。jQuery .not(this)不起作用

這就是爲什麼我嘗試使用.not(這),但它是努力工作,我做錯了什麼?

這是代碼:

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

謝謝!

編輯:

想通了。

所針對的 '本',但我現在需要 '這個'

代碼的.item體是:

$('#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(); 
    } 
}); 
+3

$('。item-body')。not($(this))。slideUp(); –

+0

您應該在jsFiddle上提供HTML標記和複製問題。編輯:你的問題是固定的還是什麼?! –

+3

@SomnathKharat爲什麼?傳遞DOM元素也是有效的。 – Johan

回答

0

$(本)應該有這樣的,

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

使用'this'很好... – Anton

+0

這將是真實的,但我也忘了我不需要瞄準'this',但是我需要'this'的.item-body。 還是謝謝! – RobinKuiper

2

this是純JavaScript的對象,並且使用的是not方法的jQuery與javascript對象

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

使用'this'很好...... – Anton

+1

'.not(this)'應該以同樣的方式處理 –

+0

這是事實,但我也忘了我不需要瞄準'this',但我需要這個。 「this」中的item-body。 還是謝謝! – RobinKuiper