folder Tahribat.com Forumları
linefolder Html - CSS - XML - JavaScript - Ajax
linefolder Jquery $("#Element").On("Click","Button" ..... Firefoxta Çalışmıyor.



Jquery $("#Element").On("Click","Button" ..... Firefoxta Çalışmıyor.

  1. KısayolKısayol reportŞikayet pmÖzel Mesaj
    Hannibal_King
    Hannibal_King's avatar
    Kayıt Tarihi: 22/Ağustos/2010
    Erkek

    Bir tane id si anaDiv olan bir div olsun. Sayfa yüklenince aşağıda gördüğünüz jquery kodlarını çağırıyorum.Sonra anaDiv içine dinamik olarak button ve onun içinede i elementi koyuyorum.

    Jquery kodlarımız

     $("#anaDiv").on("click","i", function () {

                    console.log($(this));

                    console.log($(this).parent());

                    $(this).parent().remove();

                });

     

    Örnek: Sayfanın son hali aşağıdaki gibi olsun 3 tane button ve i attık anaDiv içine bu durumda yukardaki jquery kodları chrome ve operada çalışıyor ancak firefox ve internet explorerda çalışmıyor. 

    Jquery versiyon = 1.12.4

    <div id="anaDiv">

    <button><i></i></button>

    <button><i></i></button>

    <button><i></i></button>

    </div>

     

  2. KısayolKısayol reportŞikayet pmÖzel Mesaj
    pesimistzombie
    pesimistzombie's avatar
    Kayıt Tarihi: 14/Haziran/2006
    Erkek

    i yerine button denesen? consoleda hata çıkıyor mu?


    :|
  3. KısayolKısayol reportŞikayet pmÖzel Mesaj
    Hannibal_King
    Hannibal_King's avatar
    Kayıt Tarihi: 22/Ağustos/2010
    Erkek

    Firefoxta button diyince oldu. İçerdeki i ye sınıf atıyorum.

     $("#anaDiv").on("click",".sinif-adi", function () {

                    console.log($(this));

                    console.log($(this).parent());

                    $(this).parent().remove();

                });

    seklinde yapıyorum.O zaman yine olmuyor. Hiç fonksiyon içine girmiyo akış ordaki i de carpı işareti butonun sağ tarafında çarpı simgesi var ondan i ye bastırmaya calısıom.

  4. KısayolKısayol reportŞikayet pmÖzel Mesaj
    pesimistzombie
    pesimistzombie's avatar
    Kayıt Tarihi: 14/Haziran/2006
    Erkek

     $("#anaDiv button i").on("click",function () {

    denesen olmaz mı?


    :|
  5. KısayolKısayol reportŞikayet pmÖzel Mesaj
    Hannibal_King
    Hannibal_King's avatar
    Kayıt Tarihi: 22/Ağustos/2010
    Erkek

    Şimdi button ve i yi runtimeda ekleyeceğim için dediğin şekilde yaparsam sayfa yüklenince bakıyorki div içinde ne button var nede i var kimseye bişey eklemiyor. Ondan 1.seçiciye yazdığım kısmın sayfada en başından beri eklenmiş olması lazım. 

    Şu şekilde yapsam olur sanırım.

    $("#anaDiv").on("click","button", function (event) {

                    // burda event.mouseKonumu  gibi bi property ye bakarım.Eğer butonun sağ tarafına tıklanmışsa o zaman çarpıya basıldı sayarım.

     

                    console.log($(this));

                    console.log($(this).parent());

                    $(this).parent().remove();

                });

  6. KısayolKısayol reportŞikayet pmÖzel Mesaj
    hackingo
    hackingo's avatar
    Kayıt Tarihi: 09/Eylül/2005
    Erkek
    $("i").click(function(){ 
    console.log("hede"); 
    });

    denesene

     

    hackingo tarafından 30/May/16 03:27 tarihinde düzenlenmiştir
  7. KısayolKısayol reportŞikayet pmÖzel Mesaj
    Hannibal_King
    Hannibal_King's avatar
    Kayıt Tarihi: 22/Ağustos/2010
    Erkek

    sayfada henuz i elementi olmadığı için document.ready() de 

    $("i").click(function(){
    console.log("hede");
    });
     
    bunu çağırsak kimseye olay eklenmemiş olur. Ama dinamik olarak ekledıkten hemen sonra dediğin gibi yapabılırım ben daha cok .on("click" ... seklinde nasıl yaparız diye dedim.Onuda pesimitzombie nin dediği biçimde button dediğim zaman oldu.
  8. KısayolKısayol reportŞikayet pmÖzel Mesaj
    hackingo
    hackingo's avatar
    Kayıt Tarihi: 09/Eylül/2005
    Erkek
    Hannibal_King bunu yazdı

    sayfada henuz i elementi olmadığı için document.ready() de 

    $("i").click(function(){
    console.log("hede");
    });
     
    bunu çağırsak kimseye olay eklenmemiş olur. Ama dinamik olarak ekledıkten hemen sonra dediğin gibi yapabılırım ben daha cok .on("click" ... seklinde nasıl yaparız diye dedim.Onuda pesimitzombie nin dediği biçimde button dediğim zaman oldu.

    eskiden live ya da bind vardi simdi kaldirildi diye hatirliyorum

  9. KısayolKısayol reportŞikayet pmÖzel Mesaj
    ozgunlu
    ozgunlu's avatar
    Banlanmış Üye
    Kayıt Tarihi: 11/Kasım/2011
    Erkek
    hackingo bunu yazdı
    Hannibal_King bunu yazdı

    sayfada henuz i elementi olmadığı için document.ready() de 

    $("i").click(function(){
    console.log("hede");
    });
     
    bunu çağırsak kimseye olay eklenmemiş olur. Ama dinamik olarak ekledıkten hemen sonra dediğin gibi yapabılırım ben daha cok .on("click" ... seklinde nasıl yaparız diye dedim.Onuda pesimitzombie nin dediği biçimde button dediğim zaman oldu.

    eskiden live ya da bind vardi simdi kaldirildi diye hatirliyorum

    live deprecated, yerine on kullanacaksınız

    ozgunlu tarafından 30/May/16 13:19 tarihinde düzenlenmiştir

    Hello, i am nothing. I come from Neverland.
  10. KısayolKısayol reportŞikayet pmÖzel Mesaj
    PcK0
    PcK0's avatar
    Kayıt Tarihi: 13/Nisan/2007
    Erkek

    Şimdi bir tane #anaDiv elementimiz var. Js ile bunun içine 3 tane <button><i></i></button> koyuyoruz. Bu eklenen buttonlara click olayını iliştirmek istiyoruz dimi?

    Ben doğru anladım olarak kabul edip bir tane jsfiddle hazırlıyorum. Yanlış anlamışsam hemen yaz.

    https://jsfiddle.net/vmh4psgy/1/

    Edit Kodun Açıklanması: Şöyle ki html elementleri üzerinde değişiklik yaptığımı zaman -asenkron olaylar bunun dışında olmak üzere- hemen alttaki JS kodu çalıştırılmaz. İlk olarak html manipülasyonunun işlenmesi beklenir. O yüzden eklemeden hemen sonra olay atayabilirsiniz.

     

    PcK0 tarafından 30/May/16 13:52 tarihinde düzenlenmiştir

    Sadece bi imza..
  11. KısayolKısayol reportŞikayet pmÖzel Mesaj
    Hannibal_King
    Hannibal_King's avatar
    Kayıt Tarihi: 22/Ağustos/2010
    Erkek

    Senaryo : Bir div içine runtime sırasında button ekliyoruz, o buttonların içinede i elementi koyuyoruz. Bu i elementi aşağıdaki örnekte kırmızı bölge. Kullanıcı  gelipte i elementine basarsa buton silinecek.

    PcKO hocamın yazdığı örneği aşağıdaki gibi düzenledim.

    https://jsfiddle.net/vmh4psgy/5/

    İşte bu örneği chrome ve operada deneyin birde firefox ve internet explorer. İstenen şey ortadaki kırmızıya basınca butonun kaybolması.Ancak firefox ve internet explorerda çalışmıyor.

     

    Çözüm olarak pesimistzombie hocam button kullan dedi.Onu denedim o zaman oluyor.O zamanda i yi algılamıo butona basınca butonu siliyor ama olsun.

    Diğer yöntem ise her elementi ekledıkten sonra .bind ile yada .click ile her elemente ayrı ayrı olay vermek şimdi bide onu deneyeyim.

Toplam Hit: 1968 Toplam Mesaj: 13
jquery on jquery firefox sorunu