2013-05-15 88 views
2

即時通訊使用ACE編輯器和即時無法修改它自動展開當用戶輸入比當前大小: 這裏是我如何擁有它當前(它有一個處理程序shift + enter),它不起作用。如何添加一個自動展開到ACE編輯器

Typist.prototype.heightUpdateFunction = function() { 
      var newHeight = 
       ac.getSession().getScreenLength() 
       * ac.renderer.lineHeight 
       + ac.renderer.scrollBar.getWidth(); 
      $(settings.id).height(newHeight.toString() + "px"); 
      ac.resize(); 
      }; 

Typist.prototype.createinput = function(settings,handler) { 
    var that = this; 
    var $typepad = $("<div/>" ,{ 
      id : settings.id, 
      }).css({position:'relative', height: '40px'}) ; 
    $(that.place).append($typepad); 
    var ac = ace.edit(settings.id); 
    ac.commands.addCommand({ 
      name : 'catchKeys', 
      bindKey : { win : 'Shift-Enter', mac : 'Shift-Enter' }, 
      exec : function (ac) { 
      if (typeof handler === "function") { 
        handler(ac); 
       } 
      }, 
      readOnly : false 
      }); 
    that.heightUpdateFunction(); 
    ac.getSession().on('change', that.heightUpdateFunction); 

    return true; 
}; 

我將如何得到它的工作?這個當前的代碼沒有。 我將如何訪問調用高度更新的對象? (或含王牌編輯器的div「ID」,因爲我有好幾個,每一個id可達由

a.inpid 

給出

a = new Typist() 

我嘗試來自閱讀this similar kind of problem我不想走那條路,因爲我將不得不在頁面上幾個王牌編輯,我需要知道一個的ID的高度調整申請。

回答

1

原來我錯過了一些簡單的

Typist.prototype.heightUpdateFunction = function() { 
     var newHeight = 
      ac.getSession().getScreenLength() 
      * ac.renderer.lineHeight 
      + ac.renderer.scrollBar.getWidth(); 
     $("#"+settings.id).height(newHeight.toString() + "px"); // i forgot $() needs '#' 
     ac.resize(); 
     }; 

我不好。這種疏忽讓我幾個小時醒了。 編輯: 在代碼中查看註釋以查找我的更正

相關問題