lostyazilim
tr.link

Jquery'de butonlara atanan onclick işlemi sorunu

5 Mesajlar 1.469 Okunma
acebozum
tr.link

ismail03 ismail03 WM Aracı Kullanıcı
  • Üyelik 28.11.2013
  • Yaş/Cinsiyet 30 / E
  • Meslek Ameliyathane Hemşiresi
  • Konum Afyon
  • Ad Soyad I** Ç**
  • Mesajlar 2633
  • Beğeniler 344 / 487
  • Ticaret 12, (%100)
Merhaba sorunum ne kadar basit gibi gözüksede beni baya zorladı.
Ne yapmak istiyorum?Sorunum ne?
Yönetim panelimde resim silme alanım var 30 adet resim olduğunu varsayalım. bunlara birer adette sil butonu atadım.Sil butonuna bastığımda onu kapsayan divi siliyor ancak sorunum farklı silme butonlarına bastığımda ortaya çıkıyor en son tıkladığım siliyor bir önceki silinmiyo sorunum bu
resimSil fonksiyonu

function resimSil(){
$(this).html(" Siliniyor...");
parentDiv=$(this).parent("div");
setTimeout(function(){
parentDiv.remove();
},3000);
}

Html alanı





onClick tanımlama islemi

$(".resimSil-btn").on("click",resimSil);

Çözüm önerisi olan var mı? yada nerede hata yapıyorum?
 

 

elektronikssl
webimgo

Ozcnn Ozcnn WM Aracı Kullanıcı
  • Üyelik 14.05.2020
  • Yaş/Cinsiyet 26 / E
  • Meslek Freelancer
  • Konum İstanbul Avrupa
  • Ad Soyad Ö** K**
  • Mesajlar 29
  • Beğeniler 18 / 7
  • Ticaret 0, (%0)
Merhaba kapsayici divlere benzersiz id verirsen sorun ortadan kalkar diye düşünüyorum örneğin 30resim var her resimin kapsayicisina kapsayici{id} şeklinde id verirsen o kapyasicinin içindeki sil butonunun onclick alanina resimSil(id) ile gönderirsen basılan kapyasicinin idsini gonderdiginden fonksiyon içinde kapsayici{gelenid}.remove yaparsan sorun çözülür
Örnek olarak
İlk kapsayıcıya 1 idsi verelim kapsayici divin id'si kapsayici1 oluyor kapsayicinin icindeki butonun onclikinede resimSil(1) seklinde gonderelim resimSil() fonsiyonumuzun silme kodunuda şu şekilde değiştirirsen bastığın butonun kapsayicisini siler $("#kapsayici"+id).remove() umarim yararlı olmuştur
 

 

ismail03 ismail03 WM Aracı Kullanıcı
  • Üyelik 28.11.2013
  • Yaş/Cinsiyet 30 / E
  • Meslek Ameliyathane Hemşiresi
  • Konum Afyon
  • Ad Soyad I** Ç**
  • Mesajlar 2633
  • Beğeniler 344 / 487
  • Ticaret 12, (%100)

Ozcnn adlı üyeden alıntı

Merhaba kapsayici divlere benzersiz id verirsen sorun ortadan kalkar diye düşünüyorum örneğin 30resim var her resimin kapsayicisina kapsayici{id} şeklinde id verirsen o kapyasicinin içindeki sil butonunun onclick alanina resimSil(id) ile gönderirsen basılan kapyasicinin idsini gonderdiginden fonksiyon içinde kapsayici{gelenid}.remove yaparsan sorun çözülür
Örnek olarak
İlk kapsayıcıya 1 idsi verelim kapsayici divin id'si kapsayici1 oluyor kapsayi icinicindeki butonun onclikinede resimSil(1) seklinde gonderelim resimSil() fonsiyonumuzun silme kodunuda şu şekilde değiştirirsen bastığın butonun kapsayicisini siler $("#kapsayici+id).remove() umarim yararlı olmuştur


hocam sorunu settimeout değerini 350ms çekerek çözdüm burada sorun gelen divde değil sorun onclick atadığım class her tıklandığında resimSil fonksiyonu çağırıyor bu fonksiyon içinde tanımlı olan settimeout değeri bitene kadar son tıklanan divin verilerini alıyor. Burada ya settimeout işlemini ramde tutmalıyım yada settimeout sn değerini ms yapmalıym bende bildiğimi (ms çektim) yaptım
Ozcnn

kişi bu mesajı beğendi.

emreyvz emreyvz .NET Core & Angular & PHP Kullanıcı
  • Üyelik 19.04.2016
  • Yaş/Cinsiyet 28 / E
  • Meslek Bilgisayar Mühendisi
  • Konum İstanbul Anadolu
  • Ad Soyad E** Y**
  • Mesajlar 691
  • Beğeniler 110 / 250
  • Ticaret 24, (%100)
Resimlerin PHP kullanarak listelendiğini varsayarak anlatıyorum. Her resmi bir div içerisine yerleştirin. Bu div'e bir isim verin otomatik olarak. (Örn: 'div'.$i ) Ardından sil butonunun onclick parametresini resimsil('AzOncekiID') şeklinde üretin. Son olarak resimsil metodunda gelen ID'yi silin.

Her zaman böyle yaparım. Best practice olup olmadığı konusunda bilgim yok ama her zaman çalışır.

Kolay gelsin...
 

 

wmaraci
wmaraci

ismail03 ismail03 WM Aracı Kullanıcı
  • Üyelik 28.11.2013
  • Yaş/Cinsiyet 30 / E
  • Meslek Ameliyathane Hemşiresi
  • Konum Afyon
  • Ad Soyad I** Ç**
  • Mesajlar 2633
  • Beğeniler 344 / 487
  • Ticaret 12, (%100)

emreyvz adlı üyeden alıntı

Resimlerin PHP kullanarak listelendiğini varsayarak anlatıyorum. Her resmi bir div içerisine yerleştirin. Bu div'e bir isim verin otomatik olarak. (Örn: 'div'.$i ) Ardından sil butonunun onclick parametresini resimsil('AzOncekiID') şeklinde üretin. Son olarak resimsil metodunda gelen ID'yi silin.

Her zaman böyle yaparım. Best practice olup olmadığı konusunda bilgim yok ama her zaman çalışır.

Kolay gelsin...


Her butona onclick atamak yerine(veya tanımlamak yerine) class'a tanımladım hocam
bu daha koay geliyor.onuda denedim sorun settimeout gibi geliyor.
Resimler sadece php kısmından gelmiyor.Modal açıldığında seçilen resimleri aktarırken js kullanıyorum
 

 

wmaraci
wmaraci
Konuyu toplam 1 kişi okuyor. (0 kullanıcı ve 1 misafir)
Site Ayarları
  • Tema Seçeneği
  • Site Sesleri
  • Bildirimler
  • Özel Mesaj Al