2013-03-19 44 views

cevap

14

Aşağıdaki kod geçerli düzenlemeyi kaydedecektir.

Slick.GlobalEditorLock.commitCurrentEdit(); 

Bunu, kaydetmeyi tetiklemesi gerektiğini düşündüğünüz bir olay işleyicisinin içine yerleştirmeniz gerekir.

$('#myGrid').on('blur', 'input.editor-text', function() { 
    Slick.GlobalEditorLock.commitCurrentEdit(); 
}); 
+0

Burada bir şey eksik olabilir. Teoride bu çalışır - çünkü eğer firebug konsolu içine ekler ve sonra odaklanır ve odağı kaybedersem bir kez çalışır. Ancak kodda, belgede bile. Çalışmıyor: \ – sunzyflower

+0

Benim hatam, bu bulanıklık örneği işe yaramaz çünkü girdi alanları dinamik olarak eklenir. Bunun yerine etkinliği 'on 'kullanarak bağlamanız gerekir. Örneği güncelledim, bunu dene. TypeError:. – clav

+0

aşağıdaki hatayı alıyorum. JQuery (...) üzerine [Bu On Error kırın] bir işlev değil \t jQuery ('# myGrid') ('bulanıklık' üzerine, 'giriş .editor-text ', function() { – sunzyflower

6

I: örnek metin editörü eklentisi kullanıyorsanız Örneğin, ben bir editor-text CSS sınıf yüzden böyle bir şey çalışması gerekir Eğer bir hücreyi düzenleme yaparken yarattı giriş alanına eklenir inanıyoruz bir zaman aşımına clav en işleyicisi sarmak için gerekli bulundu: gezinmek için klavye kullanırken

Uncaught NotFoundError: An attempt was made to reference a Node in a context where it does not exist. 

:

$("#myGrid").on('blur', 'input.editor-text', function() { 

    window.setTimeout(function() { 

     if (Slick.GlobalEditorLock.isActive()) 
      Slick.GlobalEditorLock.commitCurrentEdit(); 

    }); 

}); 

gibi hataları önlemek için. Muhtemelen yeni bulanıklık işleyicisi SlickGrid'in kendi işlemesini yapmadan önce patlar ve bu da sorunlara neden olur.

4

Ne yazık ki, muhtemelen olay işleme farklılıkları nedeniyle, Grame'nin sürümü kromdaki klavye gezinmesini bozuyor.

  $('#grid').on('blur.editorFocusLost', 'input.editor-text', function() { 
       window.setTimeout(function() { 
        var focusedEditor = $("#grid :focus"); 
        if (focusedEditor.length == 0 && Slick.GlobalEditorLock.isActive()) { 
         Slick.GlobalEditorLock.commitCurrentEdit(); 
        } 
       }); 
      }); 

Bu akımın içinde iş gibi görünüyor: Bunu düzeltmek için, ben yeni odaklanmış eleman (klavye navigasyon sonucunda) ızgara içinde başka editör elemanı değilse sadece, düzenleme işlemek için bir çek eklendi firefox, krom ve ie sürümleri.

İlgili konular