2016-05-12 8 views
0

Я хотел бы вызвать какое-то действие при событии mouseover на панели инструментов деблокирования панели listblock (точнее: плагин richcombo).CKEDITOR: Плагин панели инструментов Listblock/Richcombo: ongouseover action ingegration

Я играл с некоторыми адаптациями в самом плагине listblock, а также проверял, как работает floatpanel (и панель) ... Finaly Я подошел (по крайней мере, я думаю, что я приближаюсь) и найдено

ListItem = CKEDITOR.addTemplate ('панельного элемента списка' ...

в listblock линии 12.

Там я вижу

OnClick = "CKEDITOR.tools.callFunction ({clickFn} ...

интеграции, что, наконец заканчивается в коде HTML списка.

Я также нашел целевую функцию, которая вызывается при нажатии на элемент списка, код в richcombo плагин (вокруг линии 297):

list.onClick = функция (значение, отмеченный) {

Но теперь я как-то застрял. Как работает CKEDITOR.tools.callFunction ({clickFn} в элемент списка HTML, наконец вызвать функцию list.onClick?

Есть ли {mouseoverFn} Я мог бы добавить к

OnMouseOver = CKEditor .tools.callFunction ({mouseoverFn} ...

рядом с событием OnClick в listblock? Как я мог правильно реализации mouseoverFn? И как это повлечет за то гипотетический

list.OnMouseover = функция (...

функция (будет реализован) в коде richcombo?

Любые подсказки и, возможно, пример были бы весьма признательны.

Спасибо заранее,

Стони

+0

Я реализовал не очень приятный, но рабочий взлом: onmouseover = CKEDITOR.myFunction в плагин Listblock, как упоминалось выше, и добавление myFunction к CKEDITOR. Он работает без CKEDITOR.tool.callFunction, но по крайней мере он работает и делает то, что я хочу ... – stoney

+0

Наконец-то нашел правильную интеграцию ... прочитайте комментарий в главной теме – stoney

ответ

1

Найдено надлежащую интеграцию себя:

Добавьте следующее, например {OnClick} в listblock плагин только после того, как {OnClick} (строка 15) :

'{onmouseover} = "CKEDITOR.tools.CallFunction ({mouseoverFn}, \ '{вал} \'), возвращение ложным; "» +

Добавьте следующие как getClick: функция() в listblock плагин сразу после getclick: функция() (вокруг линии 83):

  getMouseover: function() { 
       if (!this._.mouseover) { 
        this._.mouseover = CKEDITOR.tools.addFunction(function(value) { 
         var marked = this.toggle(value); 
         if (this.onMouseover) 
          this.onMouseover(value, marked); 
        }, this); 
       } 
       return this._.mouseover; 
      } 

Добавьте следующий вроде "OnClick: CKEDITOR.env.ie ...?" вход в listblock плагин только после «OnClick: CKEDITOR.env.ie ? ... "(вокруг строки 111) (но не уверен, что это также верно для IE-браузеров):

onmouseover: CKEDITOR.env.ie? 'onmouseover = "return false;" OnMouseUp»: 'OnMouseOver', mouseoverFn:. ._ это getMouseover(),

Теперь добавьте следующий как "list.onClick = функция (..." в richcombo плагин, только после того, как" list.onClick = функция (... ":

  list.onMouseover = function(value, marked) { 
       if (me.onMouseover) 
       { 
        console.log('me.onMouseover'); 
        me.onMouseover.call(me, value, marked); 
       } 
       //panel.hide(); 
      }; 

Теперь, наконец, в свой собственный плагин, где вы строите раскрывающийся выпадающий, просто используйте недавно введенную функцию OnMouseOver, как вы могли бы использовать onClick:

 onMouseover: function(value) 
     { 
      // do here whatever is needed for your mouseover action... 
     }, 

Cheers and enjoy.