Kodları lütfen aşağıdaki butonları kullanarak renklendirin. Örnek: <php> echo "Selam Dünya"; </php>
Yardım
karakter kaldı

Jquery hover problemi

Arkadaşlar bir tane submit buttonum var. Ben bunun üzerine gelince rengi değişsin istiyorum. Aşağıda yazdığım kodun doğru olması lazım ama üzerine gelince renk değişiyor ama mouse'u çekince eski rengine dönmüyor değiştiği renkte sabit kalıyor sizce problem nerde?

<input type="image" id="submit" src="images/submit.jpg" />

$('#submit').hover(function(){

$(this).replaceWith('<input type="image" id="submit" src="images/submit2.jpg">');

}, function() {

alert('afg')

$(this).replaceWith('<input type="image" id="submit" src="images/submit.jpg">');
}
);
+0
-0
Cevaba KatılıyorumKatılmıyorum
Cevap Yaz Yorum Yaz Arşivime Ekle Takip Et

Cevaplar

  • magesuko adlı üyenin fotoğrafı
    9 yıl önce yazılmış
    3 cevap - 7 soru
    verdiğin kodu kendime uyarladım ama çalışmadı maalesef :( benim örneğimdeki resim bir input alanı için yani <input type=image src=....> diye geliyor sizin örnekde css'in backgroundu değiştiriliyor submit alanına background verilebiliyor mu bilmiyorum. Benim ilk yazdığım kodda bir hata var mı image dosyalarının url lerindede bir problem göremedim?
  • 1
    necmettin adlı üyenin fotoğrafı
    9 yıl önce yazılmış
    80 cevap - 0 soru
    Problem şu: orjinal input'un (i1 diyelim) üzerine gelindiğinde i1'i silip yerine i2'yi yazıyorsun, hover'dan çıkınca da i3 gelsin diyorsun. i1'i sildikten sonra i1'in (artık varolmayan bir elemanın) hover veya hoverdan çıkma olayları çalışmaz..

    jquery sonradan eklenen elemanlara müdahale için .live() gibi fonksiyonlar kullanmayı gerektirir. ama senin .replacewith()'e veya .live()'a ihtiyacın yok.

    Senin ihtiyacın olan şey input'un src'sini değiştirmek. Koddaki replaceWith()'lerin yerine $(this).attr('src', yeniResminYolu) yazarsan sorunun çözülecektir.
    • magesuko adlı üyenin fotoğrafı magesuko
      hayır hocam hover olayını id'si submit olan elemana veriyorum hover olunca i2 gelecek hoverdan çıkınca i1 gelecek bu esnada inputun id'si yine aynı kalıyor dikkat edersen yani eleman yok olmuyor mantıken çalışması lazım bu kodun ama çalışmıyor
      9 yıl önce yazılmış
    • necmettin adlı üyenin fotoğrafı necmettin
      Eleman yok oluyor maalesef. Yok edilip yerine yeni bir i1 konuyor. replaceWith kullanıyorsun sonuçta. jQuery'nin çalışma mantığı açısından bir elemanı yok etmiş ve yerine başka bir eleman koymuş oluyorsun. O yeni elemanı jQuery görmüyor, replace ile geldiği için.

      Dediğim şekilde denedin mi?
      9 yıl önce yazılmış
    • magesuko adlı üyenin fotoğrafı magesuko
      by_abba'nın önerdiği background-image şekliyle çözdüm olayı teşekkürler herkese
      9 yıl önce yazılmış