2016-08-02 23 views
1

Kann nicht das "nicht" zu arbeiten. Wenn ich auf eine Liste klicke, möchte ich diesen Index verwenden, um auf eine Liste von absoluten Bildern zu zielen. Das ausgewählte Hintergrundbild, das in einer Liste gespeichert ist, wird nicht ausgeblendet, aber der Rest wird. Der Auserwählte bleibt.jQuert Wählen Sie ein eq-Ziel aus einer anderen Liste, die nicht ausgewählt ist

$('.accordion-item').click(function(){ 
    var index=$(this).index(); 
    var rotationImage = $('.image-rotation li'); 
    rotationImage.not('eq(index)').fadeout; 
    rotationImage.eq(index).fadeIn(); 
}); 

Codepen: http://codepen.io/rezasan/pen/oLPYVr

Antwort

1

Okay, mal sehen ...

  1. Sie :eq() nicht nur eq()
  2. Sie haben zu entkommen index in der string von :eq() richtig
  3. schreiben sollte
  4. ist es .fadeOut() nicht nur .fadeout

Alles andere funktioniert im Allgemeinen gut. :)

$('.accordion-item').click(function(){ 
    var index = $(this).index(); 
    var rotationImage = $('.image-rotation li'); 
    rotationImage.not(':eq('+ index +')').fadeOut(); 
    rotationImage.eq(index).fadeIn(); 
}); 

Und nur vollständig zu sein, könnten Sie sogar in einer einzigen Kette dies tun und nicht not() brauchen überhaupt:

$('.accordion-item').click(function(){ 
    $('.image-rotation li').fadeOut().eq($(this).index()).fadeIn(); 
}); 

Working example.

( codepen aktualisiert)
+0

Ich verpasste den + Index + und ja es ist FadeOut(). Vielen Dank @eisbehr. Du warst eine große Hilfe. –

+0

Gern geschehen, @RezaSan! Ich habe gerade meine Antwort aktualisiert, um Ihnen einen noch kürzeren Weg zu zeigen, Ihre Arbeit zu erledigen. – eisbehr

+0

Das ist noch kürzer. Also heißt das, ich muss nicht auf li cachen? Ich habe nur Angst, dass der Browser abstürzt, wenn ich sie nicht zuerst in eine Variable zwischenspeichern werde? Was denken Sie? –