2011-05-24 48 views

回答

3

addClassOnOver为你自动完成。你试过了吗?没有必要手动删除上课。

+0

感谢您的回复。我尝试过addClassOnOver(3.3.1),并且添加的类不会被删除。其实,我正在使用SuperBoxSelect;在enableElListeners中,类x-superboxselect-item和x-superboxselect-item-hover永远不会被删除。也许这是一个错误? – Upperstage 2011-05-25 14:24:31

+1

听起来像是SBS中的一个错误。标准的addClassOnOver方法自动设置一个删除处理程序。 – 2011-05-26 23:54:52

+1

你是对的; SBS中的错误。它调用addClassonOver与由空格分隔的两个类;一旦两个电话打出来,一切都很好。 – Upperstage 2011-05-31 22:04:19

1

试试这个:

var removeFn = function(e){ 
    if(!e.within(this.el, true)){ 
    Ext.fly(this, '_internal').removeClass(className); 
    } 
}; 

this.on('mouseout', removeFn, this.dom); 

参考:

addClassOnOver

+0

感谢您的回复。我尝试处理mouseout事件,但没有成功。但是,我不熟悉_internal - 作为DOM搜索的根源?你会解释一下吗? – Upperstage 2011-05-25 12:00:58

+0

@Upper Stage:Ext.fly(String/HTMLElement el,[String named])接受2个参数,el:dom节点或id&命名:String允许创建命名的可重用flyweights以防止冲突(例如,内部Ext使用“ _global“),你也可以使用Ext.get。请参阅:http://dev.sencha.com/deploy/ext-3.3.1/docs/source/Element.html#method-Ext-fly – MMT 2011-05-25 13:40:37

+0

我了解要飞行的参数;我在询问字符串'_internal'。什么是'_internal'? (帮助+1) – Upperstage 2011-05-25 14:26:24

0

在SuperBoxSelect这看起来是一个错误。

要解决的SBS的错误,我只是改变:

this.el.addClassOnOver('x-superboxselect-item x-superboxselect-item-hover'); 

到:

this.el.addClassOnOver('x-superboxselect-item-hover'); 

这解决了问题,非常漂亮,且无副作用,我可以看到。