簡體   English   中英

如何知道哪個 ace 編輯器觸發了“onchange”事件?

[英]How to know which ace editor fired an 'onchange' event?

我在同一頁面上有幾個活動的 ACE 編輯器,每個編輯器都應該觸發“on change”事件。

editor[iGr].getSession().on('change', function(e) {
  // e contains the change type and data
 some_code...;
});

我如何在回調函數中知道哪個編輯器觸發了它? 發送到回調的傳統“e”對象僅包含有關數據更改本身的信息,而不是編輯器本身的信息。 在我的情況下,“this”對象沒有提供信息(包含本機代碼的未命名函數數組)。

實際上,我可以自己回答這個問題:“e”是觸發更改事件時的事件對象。 我發現我可以使用編寫回調函數的上下文。 這是基本的Javascript:如果聲明了一個變量(即編輯器的編號),它將在回調函數中看到......

您可以將 2 個參數傳遞給處理函數,第二個是編輯器實例。

editor1.on("change", function(e, ins) {
    ins.setValue("HELLO on Editor 1", -1);
});

editor2.on("change", function(e, ins) {
    ins.setValue("HELLO on Editor 2", -1);
});

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM