Duyuruyu Kapat
Facebook Gözat
Twitter Gözat

Edit in Place hakkında

Konu, 'Javascript' kısmında Bigsnow tarafından paylaşıldı.

  1. Bigsnow

    Bigsnow Daimi Üye

    Kayıt:
    20 Mart 2007
    Mesajlar:
    1,083
    Beğenilen Mesajlar:
    1
    Meslek:
    Öğrenci
    Şehir:
    Antalya
    merhabalar, jquery'nin bir plugin'i var Jeditable diye onun üstünde bir değişiklik yapmam gerek ama yapamadım bir türlü.

    Yapmak istediğim şu;

    <td class="edit">Burası düzenlenecek</td><td class="duzelt">Düzenle</td>

    Şimdi normal jquery kodları şöyle;

    PHP:
    $('.edit').editable('http://www.example.com/save.php', {
    indicator 'Saving...',
    tooltip   'Click to edit...'
     
    });
    class="edit" kısmına tıklanıldıgı zaman gayet güzel çalışıyor. Ancak ben böyle olmasını istemiyorum. İstiyorum ki "düzenle" kısmına tıklanıldıgı zaman edit in place yapılsın. Bunu nasıl sağlayabilirim?
     
  2. ahmeTT

    ahmeTT Üye

    Kayıt:
    23 Haziran 2008
    Mesajlar:
    190
    Beğenilen Mesajlar:
    0
    Meslek:
    Mühendis
    Seçici ifade içindeki '.edit' yerine '.duzenle' yazmak gibi mi?
     
  3. Bigsnow

    Bigsnow Daimi Üye

    Kayıt:
    20 Mart 2007
    Mesajlar:
    1,083
    Beğenilen Mesajlar:
    1
    Meslek:
    Öğrenci
    Şehir:
    Antalya
    Hayır, şimdi edit class'ı içindeki veri düzenlenicek ama duzen class'ına tıklandıgında =) anlatabildim mi?
     
  4. ahmeTT

    ahmeTT Üye

    Kayıt:
    23 Haziran 2008
    Mesajlar:
    190
    Beğenilen Mesajlar:
    0
    Meslek:
    Mühendis
    Heh şimdi anladım :) Son 10 dakikadır eklentinin koduna bakıyorum da dışarıdan bir event ile jeditable'ı nasıl tetikleyeceğimi bulamadım.

    Ek: Yaparsan bizi de gör, merak ettim.
     
  5. Bigsnow

    Bigsnow Daimi Üye

    Kayıt:
    20 Mart 2007
    Mesajlar:
    1,083
    Beğenilen Mesajlar:
    1
    Meslek:
    Öğrenci
    Şehir:
    Antalya
    Hala uğraşıyorum hiç bişey bulamadım :S
     
  6. ahmeTT

    ahmeTT Üye

    Kayıt:
    23 Haziran 2008
    Mesajlar:
    190
    Beğenilen Mesajlar:
    0
    Meslek:
    Mühendis
    Eklentinin 125. satırında asıl iş yapan fonksiyonu seçili elemente bind ediyor. Sen o bind etme işleminde direk seçili elemanı değil de ikincil elemanı bind etmelisin, onun için de ayrıca bir parametre yollayıp tam o bind etme sırasında eğer parametre varsa ona bind et yoksa devam et ağa gibisinden bir şey yazman lazım.
    Esasen bunu bırakıp kendin yazsan çok daha kısa sürer.
     
  7. Bigsnow

    Bigsnow Daimi Üye

    Kayıt:
    20 Mart 2007
    Mesajlar:
    1,083
    Beğenilen Mesajlar:
    1
    Meslek:
    Öğrenci
    Şehir:
    Antalya
    Aynen dediğin gibi yaptım. Salak gibi uğraştım gün boyu. Üstteki mesajımı 00:01 'de yazmışım saat şuan 00:20 ve kendi edit in place kodumu yadım gayetde güzel çalışıyor. 20dk 'lık bir işten üşendiğim için tüm günüm gitti.
     
  8. chesterx

    chesterx Daimi Üye

    Kayıt:
    28 Aralık 2007
    Mesajlar:
    2,473
    Beğenilen Mesajlar:
    1
    Meslek:
    Web Programlama
    Şehir:
    İstanbul
    PHP:
    $('.duzenle').click(function(){
    $(
    '.edit').editable('http://www.example.com/save.php', {
    indicator 'Saving...',
    tooltip   'Click to edit...'
     
    }); 
    });
    denesene ya da editable fonksiyonunu tetikletmek lazım bu çalışmazsa
     
  9. ahmeTT

    ahmeTT Üye

    Kayıt:
    23 Haziran 2008
    Mesajlar:
    190
    Beğenilen Mesajlar:
    0
    Meslek:
    Mühendis
    chesterx o yazdığın 'duzenle' tıklandığında 'edit' için editable özelliği veriyor o kadar. editable fonksiyonunu tetiklemek derken neyi kastettiğini bilmiyorum ama eklenti senin verdiğin form elemanına kendi fonksiyonunu bind ediyor. Yani edit.onClick fonksiyonunu implement ediyor. Onu başka bir form elemanından tetiklemek için nasıl bir tavsiyen var ?
     
  10. Bigsnow

    Bigsnow Daimi Üye

    Kayıt:
    20 Mart 2007
    Mesajlar:
    1,083
    Beğenilen Mesajlar:
    1
    Meslek:
    Öğrenci
    Şehir:
    Antalya
    Onu denedim olmamıştı chester sağol yinede =)
     
  11. chesterx

    chesterx Daimi Üye

    Kayıt:
    28 Aralık 2007
    Mesajlar:
    2,473
    Beğenilen Mesajlar:
    1
    Meslek:
    Web Programlama
    Şehir:
    İstanbul
    gece uzun süre uğraştım ama kolay bişey olmadığı kararına vardım editable fonksiyonu this ile alıyor elementi bunu dışarıdan parametre ile göndermek gerekli ufak bi çalışma yaptım fakat başarılı olamadım
     
  12. ahmeTT

    ahmeTT Üye

    Kayıt:
    23 Haziran 2008
    Mesajlar:
    190
    Beğenilen Mesajlar:
    0
    Meslek:
    Mühendis
    Biraz araştırma sonucunda öğrendim ki bir elamanın onClick fonksiyonunu click fonksiyonu ile tetiklenebiliyor:
    Kod:
    <b id="z" onclick="alert('selam')" > tıkla bana </b>
    <b onClick="document.getElementById('z').click()"> tıklat ötekini </b>
    
    Ancak malesef bu kod sadece internet explorer'da çalışıyor. Firefox'ta (gecko tabanlı tarayıcılarda) çalışması için tetiklenen onclick fonksiyonunun bir form nesnesi olması şartmış. Hatta sadece button, checkbox, radio, reset ve submit tipinde form elemanlarına ait onclick fonksiyonu tetikleniyormuş.
    Kod:
    <input type="button" onclick="alert('tıklandım sanki');" id="z">
    <b title="ahmet" class="a" onmouseover="document.getElementById('z').click()"> tıklat ötekini</b>
    
    Eğer jeditable ile düzenlediğin alan form ise bu şekilde kullanabilirsin, tabii form alanını düzenlemek için de jeditable kullanmayacağına göre bu mesajı sadece ileride bunu arayanlara örnek olsun diye yazıyorum demektir.
     
  13. Mengu

    Mengu Daimi Üye

    Kayıt:
    4 Haziran 2007
    Mesajlar:
    1,323
    Beğenilen Mesajlar:
    0
    Meslek:
    Muebbet Ogrenci
    Şehir:
    Dersaadet
    ben sifirdan kendim yapmistim edit in place metodu, bulursam paylasayim.
     
  14. ahmeTT

    ahmeTT Üye

    Kayıt:
    23 Haziran 2008
    Mesajlar:
    190
    Beğenilen Mesajlar:
    0
    Meslek:
    Mühendis
    Yukarıda yazdığımın aksine jQuery ile DOM'dan bağımsız olarak tetikleme işlemini yapıyormuş. Yani jeditable da bu şekillde kullanılabilirmiş.
    Kod:
    <script>
    $(document).ready(function(){
        $("#z").click(function () {
            alert("birinciye basildi");
        });
        $("#x").click(function () {
            alert("ikinciye basildi");
            $("#z").trigger('click');
        });
    });
      </script>
    
    
    <b id="z" > tıkla bana </b>
    <b id="x" > tıklat ötekini </b>