`
atian25
  • 浏览: 468805 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

ExtJS Menu嵌套Combo时,下拉菜单被遮盖的bug的解决方法...

阅读更多

2009-09-06补充:

该文章只解决了combo下拉框被遮盖的问题,但是如果选择como的某项,或者点击下拉菜单就会自动隐藏menu

请移步查看后续文章:

 

ExtJS Menu嵌套combo时,自动隐藏/遮盖等bug的解决方案

http://atian25.iteye.com/blog/441476

 

 

问题很简单, 在Menu里面加入一个Combo后,下拉菜单被遮住了...

 

示意图:


示例代码:

function testSplitButton(){
    var combo = new Ext.form.ComboBox({
    fieldLabel: 'test',
    store: ['x','xx','xxx','xxxx','xxxxx','xxxxx'],
    mode: 'local'
    });
    var simple = new Ext.FormPanel({
        labelWidth: 75,
        frame:true,
        width: 350,
        height:100,
        items: [combo],
        buttons: [{
        text: 'Save'
        },{
        text: 'Cancel'
        }]
    });
    new Ext.SplitButton({
        renderTo: document.body,
        text: 'Options',
        menu: new Ext.menu.Menu({
            //2.2写法是 items:[new Ext.menu.Adapter(simple)]
            items: [simple]
        })
    });
}
 

官方解答:

We're looking at possible plans to automate z-indexing in a future release, however there's so many different combinations that you can apply. At this point in time we aren't considering it a bug, you would need to apply a custom z-index.

Marking as closed.

http://extjs.com/forum/showthread.php?t=75207

 

 

所以只好自己的fix,方法如下:

1.添加样式:

.fixedZIndex{  
   //由于menu里面的layer的z-index是15000,则这里大于15000即可..  
   z-index: 21000;  
}
 

2.对出问题的combo指定下拉列表的样式:

function testSplitButton2(){
  var combo = new Ext.form.ComboBox({
    fieldLabel: 'test',
    store: ['x','xx','xxx','xxxx','xxxxx','xxxxx'],
    mode: 'local',
    //指定下拉列表的z-index
    listClass:'fixedZIndex'
  });
  var simple = new Ext.FormPanel({
    labelWidth: 75,
    frame:true,
    width: 350,
    height:100,
    items: [combo],
    buttons: [{
      text: 'Save'
    },{
      text: 'Cancel'
    }]
  });
  new Ext.SplitButton({
    renderTo: document.body,
    text: 'Options',
    menu: new Ext.menu.Menu({
	    items: [simple]
    })
  });
}
 

 

还有其他的规避方法就不多说了,如把panel变为floating和hidden的,然后自己监听事件。

 

09.07.24 补充:

官方的另一种解法:

http://extjs.com/forum/showthread.php?p=351546#post351546

  • 大小: 9.3 KB
分享到:
评论
1 楼 xiexifeng113 2010-10-17  
现在的ext没有这个问题了。可是新出来的问题又和这个一样了。
帮忙看看我的那个问题http://www.iteye.com/problems/51798

相关推荐

    EXTJS2.2.1中Grid表头的下拉菜单很难看

    总的来说,EXTJS 2.2.1中Grid表头下拉菜单的样式问题可以通过理解EXTJS的默认样式、自定义CSS和利用框架的API来解决。同时,保持对浏览器兼容性和JavaScript错误的敏感性也是优化用户体验的关键。在实际操作中,可能...

    Extjs4下拉菜单ComboBox中用Grid显示通用控件

    在EXTJS4中,`ComboBox` 是一个非常常用的组件,它提供了一个下拉选择框的功能。在某些场景下,我们可能需要在下拉菜单中展示更丰富的信息,比如表格数据,这时就可以使用 `GridComboBox`。`GridComboBox` 结合了 `...

    Extjs6 下拉列表

    - ComboBox是ExtJS中的一个基础组件,它结合了文本输入框和下拉菜单,允许用户在输入时选择或搜索匹配的选项。 - 在ExtJS6中,ComboBox提供了多种配置项,如`store`(数据源)、`displayField`(显示字段)、`...

    Extjs4.X下comboboxTree下拉树型菜单,完美支持多选、单选,绝对好用

    综上所述,ExtJS 4.x的ComboboxTree组件是实现下拉树形菜单的强大工具,它结合了下拉框的简洁和树结构的层次感,提供了丰富的定制选项,能满足多种场景下的需求。理解并熟练掌握其用法,将极大地提升开发效率和用户...

    Extjs实现下拉菜单效果

    在本篇文章中,我们将详细了解如何使用ExtJS框架实现具有下拉树功能的下拉菜单效果。ExtJS是一个成熟的JavaScript框架,用于创建交互式的Web应用程序,提供了一整套丰富的用户界面组件,其下拉树组件是其众多组件之...

    extjs desktop相关 动态生成开始菜单 多级菜单的快捷方式

    标题中的“ExtJS Desktop相关 动态生成开始菜单 多级菜单的快捷方式”涉及到的是一个使用ExtJS框架实现的桌面应用模拟系统,它能够创建类似Windows操作系统的开始菜单,并支持多级菜单结构来快速访问应用程序或功能...

    Extjs6中Combobox实现下拉多选

    该资源主要展示了在Extjs6中Combobox控件实现下拉选择多个数据的功能

    extjs4 下拉菜单树 combobox+tree 支持单选多选

    在EXTJS4中,下拉菜单树(ComboBox+Tree)是一种高级UI组件,它结合了ComboBox的下拉选择框和TreePanel的树形结构,提供了一种用户友好的交互方式,用于展示层次化的数据。这种组件特别适用于需要从多个选项中进行...

    Extjs 下拉菜单实现拼音输入进行检索

    Extjs 下拉菜单实现拼音输入进行检索

    ExtJs4.2下拉树(修改版)

    ExtJs4.2没有直接提供下拉树这个组件,但是有例子可以用,文件位置:ext-4.2.1.883\examples\ux\TreePicker.js 但是它有点小毛病吧:默认显示了根节点;达到最小高度时再展开节点,高度不能自动调整。 所以我做了一...

    Extjs4下拉树菜单ComboBoxTree支持单选和多选并且支持展开选中指定节点的通用控件

    总的来说,学习和理解ComboBoxTree的实现可以帮助开发者更高效地在ExtJS4项目中构建交互式的下拉菜单,特别是在处理层次结构数据时。通过深入研究ComboBoxTree.js源码,可以获取更多关于如何自定义ExtJS组件的宝贵...

    extjs下拉树

    ExtJS下拉树是一种在Web应用中常用的交互组件,它结合了下拉框和树形结构的优点,使得用户可以在一个紧凑的空间内选择嵌套层次的数据。这种组件在数据层级较多,需要用户进行逐级选择或者查看层级关系时非常实用。在...

    extjs4 ComboBox 点击下拉框 出现grid效果

    在EXTJS4中,ComboBox是一个常用的组件,它用于创建下拉选择框,通常用于输入框的辅助选择。这个组件提供了一种用户友好的方式来从一组预定义的选项中进行选择。然而,根据你的标题和描述,你似乎遇到了一个特别的...

    extjs2.0 下拉列

    在本例中,我们将重点讨论如何在 ExtJS 2.0 中实现下拉列表功能。 下拉列表在 Web 应用程序中非常常见,通常用于提供可选的选项供用户选择。在 ExtJS 中,下拉列表可以通过创建 `Ext.form.ComboBox` 实现。这个组件...

    Extjs4 下拉树 TreeCombo

    ExtJS 4 下拉树(TreeCombo)是一种组合控件,它将传统的下拉框与树形结构结合在一起,提供了一种在有限空间内展示层级数据的高效方式。这种控件在很多场合都非常实用,例如在需要用户选择分类或者层级结构的场景中...

    Extjs动态加载菜单

    4. **编辑子项**:如果需要修改已存在的菜单项,可以使用`set`方法更新其属性,如`menu.items.get(0).set('text', '新的文本')`。 5. **拖动保存**:ExtJS提供拖放(Drag and Drop)支持,可以允许用户通过拖动来调整...

    extjs4 导航菜单实例

    在ExtJS中,导航菜单通常通过`Ext.menu.Menu`类来实现,这是一个可弹出的菜单,可以包含多个子菜单项。创建导航菜单时,我们需要定义菜单项(menu items),每个菜单项可以是简单的链接、复选框、分割线或包含子菜单...

    ExtJs3下拉树

    ExtJs3下拉树 分两种方式调用:第一种: xtype : 'combotree', name : 'dm', fieldLabel : 'dm', tree : this.ct this.ct = new Ext.tree.TreePanel({ autoScroll : true, height : 250, border : false, ...

    EXTJS4 菜单栏

    5. **动态更新**:在运行时,你可以通过调用`add`、`remove`、`insert`等方法来动态修改菜单栏的内容。这使得菜单栏可以根据用户权限或应用状态进行实时更新。 6. **事件处理**:EXTJS4的菜单项支持多种事件,如`...

    extjs4.2 分页combo动态条数 源码

    默认情况下,所有的选项都会被加载到下拉菜单中,但通过添加分页功能,我们可以将大列表拆分成小块,每次只加载一部分。 分页组件在EXTJS中通常由PagingToolbar提供,这是一个放置在Grid或TreePanel底部的工具栏,...

Global site tag (gtag.js) - Google Analytics