Javascript 选项卡面板事件

Javascript 选项卡面板事件,javascript,jquery,extjs,Javascript,Jquery,Extjs,我正在使用一个带有一些选项卡面板和选项卡的Ext Js web,我想在每个选项卡上使用一些不同的JQuery,问题是如果我附加一些JQuery事件,它会附加到所有选项卡上,因为它们在同一个HTML中,因此我想在打开一个选项卡之前解除所有JQuery事件的绑定,并绑定我想要的选项卡,在打开相应的选项卡时让事件侦听 为了测试事件,我将以下侦听器附加到选项卡面板: listeners:{ beforetabchange : function(){ Ext.Msg

我正在使用一个带有一些选项卡面板和选项卡的Ext Js web,我想在每个选项卡上使用一些不同的JQuery,问题是如果我附加一些JQuery事件,它会附加到所有选项卡上,因为它们在同一个HTML中,因此我想在打开一个选项卡之前解除所有JQuery事件的绑定,并绑定我想要的选项卡,在打开相应的选项卡时让事件侦听

为了测试事件,我将以下侦听器附加到选项卡面板:

listeners:{
        beforetabchange : function(){
            Ext.Msg.alert("beforetabchange");
        },
        beforeshow : function(){
            Ext.Msg.alert("beforeshow");
        },
        activate : function(){
            Ext.Msg.alert("activate");
        },
        deactivate : function(){
            Ext.Msg.alert("deactivate");
        }   
  }

因此,我期待着许多弹出窗口,但唯一显示的是对应于“beforetabchange”的一个,它只是在我第一次打开一个选项卡时执行的。。。因此,有一件事我没有得到,例如:应该显示“激活”弹出窗口,每次我打开一个标签?我期待如此。

我无法理解您想要做什么,但我有以下代码,可能对您有所帮助

items:[{ xtype: 'tabpanel', activeTab: 0, items:[{ title: 'tab1', id:'divtab1', autoHeight: true, items:[{ // your content here }] },{ title: 'tab2', id:'divtab2', autoHeight: true, items:[{ // your content here }] },{ title: 'tab3', id:'divtab3', autoHeight: true, items:[{ // your content here }] }], listeners: { 'tabchange': function(tabPanel, tab){ if(tab.id=="divtab1") { function1(); } else if(tab.id=="divtab2") { function2(); } else { function3(); } } } }] 项目:[{ xtype:'tabpanel', 活动选项卡:0, 项目:[{ 标题:“表1”, id:'divtab1', 自动高度:正确, 项目:[{ //你的内容在这里 }] },{ 标题:“表2”, id:'divtab2', 自动高度:正确, 项目:[{ //你的内容在这里 }] },{ 标题:“表3”, id:'divtab3', 自动高度:正确, 项目:[{ //你的内容在这里 }] }], 听众:{ “tabchange”:函数(tabPanel,tab){ 如果(选项卡id==“divtab1”) { 功能1(); } else if(tab.id==“divtab2”) { 函数2(); } 其他的 { 功能3(); } } } }]
1) 你到底为什么要同时使用ExtJS和jQuery?ExtJS已经足够了。2) 当您更改选项卡时,选项卡面板会触发
beforetabchange
事件,而被更改的各个面板(不是包含它们的选项卡面板!)会触发
activate
deactivate
事件,这是有道理的。@Drmitry Jquery提供了一种比ExtJsI所说的更舒适的DOM访问方式,但我认为在这种情况下这是无关紧要的,因为ExtJS是一个非常沉重的库,如果您正在使用它,您不会因为喜欢它就想在它上面添加Jquery,我不想争论我为什么需要它,因为它很难解释,而且也离题了,所以请专注于这个问题。在我第一次打开每个选项卡时,选项卡面板会在选项卡更改之前触发
,因此对于我的目标来说是无用的,而且对于这个名称来说,
激活
停用
没有任何意义(至少对我来说),我不明白你的意思,不知道如何正确附加或触发它,如果你能澄清一下,那将是一个很大的帮助。@Javier这个问题不能用lees的信息来回答。如果一定要说的话,我会说这与并行使用另一个DOM操作框架以及ExtJS有关,这会导致ExtJS无法识别的更改感谢你们的帮助。最后,我所做的是正确地使用
激活
停用
事件,将这些侦听器添加到为
选项卡面板
创建的每个
面板
,而不是像以前那样直接添加到选项卡面板的侦听器列表中。