我想在listblock工具栏衍生插件上触发一些关于mouseover事件的操作(确切地说:richcombo插件)。
我在listblock插件中玩了一些自适应,并检查了floatpanel(和面板)的工作原理...... 最后我已经接近了(至少我认为我已经接近了)并找到了
listItem = CKEDITOR.addTemplate('panel-list-item'...
在listblock第12行。
我看到了
的onclick =“CKEDITOR.tools.callFunction({clickFn} ...
集成,最终以HTML列表代码结束。
我还找到了通过单击列表项调用的目标函数, 代码在richcombo插件中(第297行):
list.onClick = function(value,marked){
但是现在我被某种方式卡住了。 CKEDITOR.tools.callFunction(列表项HTML中的{clickFn}如何最终触发list.onClick函数?
我是否可以添加{mouseoverFn}
onmouseover = CKEDITOR.tools.callFunction({mouseoverFn} ...
list.OnMouseover = function(...
任何提示和可能的例子将不胜感激。
提前谢谢你,
斯托尼
答案 0 :(得分:1)
自己找到了正确的整合:
在{onclick}(第15行)之后的listblock插件中添加{onclick}之类的内容:
' {onmouseover} =" CKEDITOR.tools.callFunction({mouseoverFn},\' {val} \');返回false;"' +
在getclick:function()(第83行)之后的listblock插件中添加以下内容,如getClick:function():
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?..."在" onclick:CKEDITOR.env.ie之后的listblock插件中输入?..."声明(第111行),(但不确定它是否也适用于IE浏览器):
onmouseover:CKEDITOR.env.ie? ' onmouseover ="返回false;" onmouseup' :' onmouseover', mouseoverFn:this ._。getMouseover(),
现在在" 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... },
干杯并享受。