2013-04-29 43 views
0

的事件處理程序我有這樣的代碼SetData方法去除的CKEditor

CKEDITOR.instances.myInstance.document.on('keyup', function(event) { 
      if(event.keyCode == 13) 
      { 
       $('linkId').click(); 
      } 
     } 

事件處理程序$('linkId).click()具有此邏輯CKEDITOR.instances.myInstance.sedData('')。它只工作一次。如果我評論調用setData('')keyup事件會多次觸發。我不明白爲什麼。它看起來像setData()移除事件處理程序。有人知道它爲什麼會發生?

回答

1

我最近向臭蟲追蹤器http://dev.ckeditor.com/ticket/10365報告了它,但儘管他們不知道爲什麼會發生,但他們已經關閉它作爲無效,說你必須更改你的CKEditor 4的代碼(當然這並沒有記錄在任何地方,即使他們正在遭遇這個問題)

該票包括一個解決方案的示例。

+0

那麼,您是否找到解決方案?如何避免這種行爲? – Radislav 2013-04-30 07:41:14

+0

我用我自己的解決方案,但正如我所說的票包括一個變通辦法的修改測試用例。 – AlfonsoML 2013-04-30 07:56:37

+0

Kuba過早地關閉了這張票,但是我剛剛在v3中檢查過,在'setData'上,監聽者也被瀏覽器分離了,所以你的票確實無效。我通過在'contentDom'上附加'keyup'監聽器來測試FF(latest和3.6)和Chrome。 – Reinmar 2013-04-30 17:14:13

0
CKEDITOR.instances.myInstance.on('contentDom', function() { 
    CKEDITOR.instances.myInstance.editable().attachListener(CKEDITOR.instances.myInstance.document, 'keyup', function (event) { 
     if (event.data.$.keyCode == 13) { 
      alert("do your work!"); 
     } 
    }); 
});