问题描述
使用border 布局, tree在左边, 想要实现功能,当鼠标 mouseover的时候,给出一个消息提示. 问题补充:myali88 写道
解决方案
this.tree.fireEvent('mouseover', this.tree.getNodeById(nodeId), e); 这个发起的事件不是已经包含了事件对象本身吗?就是Extjs里面的EventObject,如果你要获取坐标的话,后面的监听处理器里面,这样定义:'mouseover' : function(node , e) {console.log(e.getPageX() + e.getPageY());console.log("mouseover:" + node); }
解决方案二:
你的问题不错,我参考extjs论坛上的实现了一下TreePanel的mouseout和mouseouver事件:定义一个插件 NodeMouseoverPlugin = Ext.extend(Object, { init: function(tree) { if (!tree.rendered) { tree.on('render', function() {this.init(tree)}, this); return; } this.tree = tree; tree.body.on('mouseover', this.onTreeMouseover, this, {delegate: 'div.x-tree-node-el'});tree.body.on('mouseout', this.onTreeMouseout, this, {delegate: 'div.x-tree-node-el'}); }, onTreeMouseover: function(e, t) {/** var nodeEl = Ext.fly(t).up('div.x-tree-node-el');**/var nodeId = t.getAttribute('ext:tree-node-id');//t.getAttributeNS('ext', 'tree-node-id');console.log('node id ' + nodeId);if (nodeId) {this.tree.fireEvent('mouseover', this.tree.getNodeById(nodeId), e);} },onTreeMouseout : function(e , t) {/** var nodeEl = Ext.fly(t).up('div.x-tree-node-el');**/var nodeId = t.getAttribute('ext:tree-node-id');//t.getAttributeNS('ext', 'tree-node-id');if (nodeId) {this.tree.fireEvent('mouseout', this.tree.getNodeById(nodeId), e);}}});在TreePanel上使用该插件:var tree = new Ext.tree.TreePanel({ //...plugins: new NodeMouseoverPlugin(), //... listeners : { 'mouseover' : function(node) { console.log("mouseover:" + node); }, 'mouseout' : function(node) { console.log("mouseout:" + node); } }实现的方式就是通过自定义插件,extjs里面所有的组件都可以支持plugins,plugin就是一个对象,这个对象包含一个init的方法,方法以当前组件为参数。针对本插件的实现,主要在两点:1、利用dom原生的鼠标事件在组件上发起一个自定义事件;2、利用代理机制,把对节点的鼠标事件委托到组件的body上面。
解决方案三:
在tree上自定义mouseover和mouseout事件,然后你自己想怎么显示提示都可以。
解决方案四:
tree.on('click',function(node, e){ var win = new Ext.Window( { title: " 标题 " , width: 300 , height: 200 , html:' <a href="www.google.com" /> ' }); win.show();}
解决方案五:
给node,添加一个属性qtip:'我是现实信息'
解决方案六:
你需要把问题再说明一下:1、extjs你使用的是什么版本2、引用使用border 布局, tree在左边, 想要实现功能,当鼠标 mouseover的时候,给出一个消息提示.鼠标移到整个tree面板提示呢,还是移到某个节点