Datatable Ve Sweetalert Problemi
-
Merhaba,
Datatable'da Sweetalert2 kullanırken problem yaşıyorum, şöyle ki
Normal olarak çalışıyor problem yok, fakat datatable responsive moduna geçtiğinde çalışmıyor buton tetiklenmiyor. JS bilgim kısıtlı olduğundan bir türlü çözemedim
Alertify kurduğumda da aynı problemi yaşadım.
https://codepen.io/atakd/pen/ZVaJpx
Bunu nasıl çözebilirim?
-
Hocam tabloyu her doldurduktan sonra
$('.sil_onay') fonksiyonunu çalıştırman gerekiyor.
Sebebi şu ;
Sen init fonksiyonunu çalıştırdığında datatables tekrar dolduruluyor UI oluşturuluyor vs.
Datatable dolduktan sonra eğer click fonksiyonunu çağırırsan sıkıntı olmaz. Sen ui dolmadan çağırıyorsun.
$(document).ready
fonksiyonunun içine alıp datatableden sonra eklersen sıkıntı kalmaz.
Kolay gelsin ;
https://codepen.io/anon/pen/Xozaww
-
MhmdAlmz bunu yazdı
Hocam tabloyu her doldurduktan sonra
$('.sil_onay') fonksiyonunu çalıştırman gerekiyor.
Sebebi şu ;
Sen init fonksiyonunu çalıştırdığında datatables tekrar dolduruluyor UI oluşturuluyor vs.
Datatable dolduktan sonra eğer click fonksiyonunu çağırırsan sıkıntı olmaz. Sen ui dolmadan çağırıyorsun.
$(document).ready
fonksiyonunun içine alıp datatableden sonra eklersen sıkıntı kalmaz.
Kolay gelsin ;
https://codepen.io/anon/pen/Xozaww
Teşekkürler hocam, verdiğin bilgilerden yola çıkarak şu şekilde çözdük
var DatatablesBasicBasic = {
init: function() {
var e;
(e = $('#siparisler-datatable')).datatable( {
responsive: true,
dom: "<'row'<'col-sm-12'tr>>\n\t\t\t<'row'<'col-sm-12 col-md-5'i><'col-sm-12 col-md-7 datatables_pager'lp>>",
lengthMenu: [10, 15, 25, 50],
pageLength: 10,
language: {
lengthMenu: "Display MENU"
},
order: [
[1, "asc"]
]
})
}
};
jQuery(document).ready(function() {
DatatablesBasicBasic.init()
});
$(document).on('click','.sil_onay', function(){
swal({
title: "asdasd.com Domain Sil",
text: "Domain silme işlemini yaptığınızda silinme periyoduna geçecek.",
type: "warning",
showCancelButton: !0,
confirmButtonText: "Evet"
}).then(function(e) {
e.value && swal("Başarılı!", "İşlem yapıldı.", "success")
})
})
-
Buda doğru bir yaklaşım fakat ben bunu önermem hocam.
Tablo her reload olduğunda bu fonksiyonu o item'a ata.
Sebebi şu sen her window'a click işlemi yaptığında arka planda çalışan
if(item.hasClass("silonay")){
//bla bla...
}
kodu çalışıyor. Bu da senin tarayıcıyı ve son kullanıcının bilgisayarını boş yere gereksiz işlemler yaptırmana sebep oluyor. Benim sna söylediğim yöntemi kullan bu yazdığın kullanım iyi bir yöntem değil.
Kolay gelsin.