extjs中怎么添加事件

extjs中怎么添加事件,第1张

extjs中如何添加事件

JScript code

var mywin = Ext.create('Ext.window.Window', { title: 'asdfsfadfad', height: 400, width: 500, 'close': function (pa, oe) { Ext.MessageBox.alert('asfsa', 'asdfds')} })mywin.show()

我是用上面的方法给window添加一个close事件,事件到是正确执行了,但问题是window关闭不了,发现是事件和方法里有一个close,好像我这样做是把close方法给覆盖了一样的,想问是如何正确添加事件啊

Extjs绑定事件不是像楼主那样写的,楼主可以去看下EXTJS的API,里面应该介绍的会比较详细,以下给楼主整了个比较简单的窗口绑定事件,希望对楼主有所帮助。

JScript code

<script type="text/javascript" >Ext.onReady(function(){ Ext.define('testWindow', { extend : 'Ext.Window', alias : 'widget.testWindow', width : 300, height : 200, title:'test', items:[ { xtype:'button', text:"确定", listeners : { scope : this, click : function(){ alert(11)} } },{ xtype:'button', text:"取消", listeners : { scope : this, click : onClick } } ] })var win = Ext.create('testWindow')win.show()}) function onClick(){ alert(112)} </script>

//一下是从button的源代码复制过来的

    // @private

    onRender: function() {

        var me = this,

            addOnclick,

            btn,

            btnListeners

        me.doc = Ext.getDoc()

        me.callParent(arguments)

        // Set btn as a local variable for easy access

        //这里是指向了一个dom

        btn = me.el

        if (me.tooltip) {

            me.setTooltip(me.tooltip, true)

        }

        // Add the mouse events to the button

        if (me.handleMouseEvents) {

            btnListeners = {

                scope: me,

                mouseover: me.onMouseOver,

                mouseout: me.onMouseOut,

                mousedown: me.onMouseDown

            }

            if (me.split) {

                btnListeners.mousemove = me.onMouseMove

            }

        } else {

            btnListeners = {

                scope: me

            }

        }

        // Check if the button has a menu

        if (me.menu) {

            me.mon(me.menu, {

                scope: me,

                show: me.onMenuShow,

                hide: me.onMenuHide

            })

            me.keyMap = new Ext.util.KeyMap({

                target: me.el,

                key: Ext.EventObject.DOWN,

                handler: me.onDownKey,

                scope: me

            })

        }

        // Check if it is a repeat button

        if (me.repeat) {

            me.mon(new Ext.util.ClickRepeater(btn, Ext.isObject(me.repeat) ? me.repeat: {}), 'click', me.onRepeatClick, me)

        } else {

            // If the activation event already has a handler, make a note to add the handler later

            if (btnListeners[me.clickEvent]) {

                addOnclick = true

            } else {

                btnListeners[me.clickEvent] = me.onClick

            }

        }

        // Add whatever button listeners we need

        //这里将事件加到 btn 上 , 就是那个dom

        me.mon(btn, btnListeners)

        // If the listeners object had an entry for our clickEvent, add a listener now

        //这里同样

        if (addOnclick) {

            me.mon(btn, me.clickEvent, me.onClick, me)

        }

        Ext.button.Manager.register(me)

    },

你好.

在<img>标签内 可以放入onclick事件 该事件必须指定一个作用域链.

如 windows.addOnclick = function(){}

便是 onclick="windows.addOnclick()" 或是 onclick="addOnclick()" 这是windows的作用域

你可以用Ext的命名空间 如 oa.bbq.addOnclick = function(){}

便是 onclick=" oa.bbq.addOnclick()" 也就是说 你现在的js与 这种dom类的事件容易出现作用域问题.

获取css的话 肯定要先获取这个dom dom.style即可


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/bake/11413822.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-15
下一篇2023-05-15

发表评论

登录后才能评论

评论列表(0条)

    保存