2013-03-07 25 views
9

Bu komut dosyası, paragrafın içindeki parantezde bir paragrafta arka plan rengine neden olmak için var. Ne yapmamayı bilmiyorum, "hover olmadan" orijinal arka plan rengine dönmesine neden olur.jquery un-hover

$(function(){ 
    $(".box a").hover(function(){ 
    $(this).parent().css('background-color', '#fff200'); 
    }); 
}); 

Teşekkürler!

+3

“: hover” sözde seçici kullanıp bunu herhangi bir JavaScript olmadan CSS'de gerçekleştirmeyi düşünebilirsiniz. Bkz. Http://quirksmode.org/css/selectors/hover.html – Brandon

+0

Sadece CSS kullanabileceğimi düşünmüyorum çünkü üst öğenin rengini değiştiriyorum. Sadece CSS'de bir üst seçici seçebileceğinizi sanmıyorum. – user1754427

cevap

28

fonksiyonu aşağıdaki gibi onmouseover çalışır ve bunun için jQuery kullanmanız gerekiyorsa

$(function(){ 
    $(".box a").hover(function(){ 
    $(this).parent().css('background-color', '#fff200'); 
    }, function(){ 
     // change to any color that was previously used. 
     $(this).parent().css('background-color', '#fff200'); 
    }); 
}); 
+0

Bu mükemmel çalışır (ikinci arka plan rengi hariç, orijinal renk olmalıydı - benim durumumda #fff - vurgulu renk değil). – user1754427

+0

Biliyorum bu yüzden burayı bir önceki renge değiştirmek için koydum :) Yardım edebileceğime sevindim, cevabı kabul etmeyi unutma –

1

jQuery documentation'da bir vurgulu işleyici var. Rengin orijinaline geri dönmek istediğiniz yer burası. Tek yaptığınız renk değiştiriyorsa, neden CSS kullanmıyorsunuz?

$(function(){ 
    $(".box a").hover(function(){ 
     $(this).parent().css('background-color', '#fff200'); 
    },function(){ 
     $(this).parent().css('background-color', '#originalhexcolor'); 
    }); 
}); 
+0

Sadece CSS kullanabileceğimi sanmıyorum çünkü üst öğenin rengini değiştiriyorum. Sadece CSS'de bir üst seçici seçebileceğinizi sanmıyorum. – user1754427

+0

Anladım ... o zaman jQuery ileriye doğru en iyi yoldur. –

2

JQuery

$(".box a").hover(function(){ 
    $(this).parent().css('background-color', '#fff200'); 
}, function() { 
    $(this).parent().css('background-color', '#ffffff'); 
}); 

fiddle bakınız.

1

onmouseout, addClass() yerine css() kullanın:

.hoveredOver { 
    background-color: #fff; 
} 
: CSS ile

$('.box a').hover(function(){ 
    $(this).closest('.box').addClass('hoveredOver'); 
}, function(){ 
    $(this).closest('.box').removeClass('hoveredOver'); 
}); 

JS Fiddle demo.

Referanslar: