2016-03-27 27 views
0

Kodda belirtilen sınıfa her tıkladığımda aynı işlemi tekrarlamak istiyorum. Vurgulu işlevi üzerinde çalışıyordu, ancak tıklama işlevine geçtiğimde, işi yalnızca bir kez yapıyor. ve tekrarlanabilir değil.Hover işlevi yerine geçiş jQuery

Ayrıca clickToggle öğesine geçtim ve çalışmaz. Düşüncesi olan var mı? handleIn ve HandleOut:

var sidebarFloat = $('.sidebar').css('float'); 
$('.sidebar').hover(function() { 
    sidebarFloat = $(this).css('float'); 

    if (sidebarFloat == 'right') { 
     $(this).stop().animate({ 
      left: "0px" 
     }, 500) 
    } else if (sidebarFloat == 'left') { 
     $(this).stop().animate({ 
      left: "0px" 
     }, 500) 
    } 
}, function() { 
    var width = $(this).width() - 10; 
    if (sidebarFloat == 'right') { 
     $(this).stop().animate({ 
      left: +width 
     }, 500); 

    } else if (sidebarFloat == 'left') { 
     $(this).stop().animate({ 
      left: -width 
     }, 500); 
    } 
}); 
+0

Belki bir jsfiddle oluşturmak? –

+0

jsfiddle ne için gereklidir? Kodu zaten yapıştırdım. Hiçbir şey fantezi – Ahmed

+0

Evet, cevabımı bakın. –

cevap

0

jquery hover() fonksiyon parametreleri olarak iki işlevi sürer. Eğer ayrı değişken kullanılarak tıklama durumunu izlemek zorunda kalacak sonucunda

Click does not.

. Örneğin

:

var sidebarFloat = $('.sidebar').css('float'); 
var toggled = false; 
$('.sidebar').click(function() { 
    if (toggled) { 
     sidebarFloat = $(this).css('float'); 
     if (sidebarFloat == 'right') { 
      $(this).stop().animate({ 
       left: "0px" 
      }, 500) 
     } else if (sidebarFloat == 'left') { 
      $(this).stop().animate({ 
       left: "0px" 
      }, 500) 
     } 
    } else { 
     var width = $(this).width() - 10; 
     if (sidebarFloat == 'right') { 
      $(this).stop().animate({ 
       left: +width 
      }, 500); 

     } else if (sidebarFloat == 'left') { 
      $(this).stop().animate({ 
       left: -width 
      }, 500); 
     } 
    } 
    toggled = !toggled; 
}); 
+0

ancak hala bir tıklama yerine vurgulu işleviniz var. – Ahmed

+0

Whooops. Teşekkürler. Sabit. –

+0

Teşekkürler, takdir ediyorum. – Ahmed