【问题标题】:How can I select elements in ExtJS?如何在 ExtJS 中选择元素?
【发布时间】:2010-11-12 15:12:15
【问题描述】:

我有一个输出以下 DOM 的 ExtJS 页面。

我想选择一个特定元素,以便我可以响应点击它。

但是,以下代码从未选择使用 extJS 库构建的元素。 JQuery 似乎也无法选择它们。

ExtJS 甚至找不到 HTML 文件本身的 <body> 元素中定义的元素。但是,JQuery 确实可以选择<body> 元素中定义的元素。

我一直在阅读this guide,这似乎表明只使用Ext.get()Ext.select() 来获取元素应该没有问题,但是,如以下代码所示,永远不会选择元素。

如何在 ExtJS 中选择元素?

var members = Ext.select('x-panel');
for (var i = members.length - 1; i >= 0; i--){
   element = members[i];
   element.on('click', function() { alert('test');})
};

【问题讨论】:

    标签: extjs event-handling


    【解决方案1】:

    尝试Ext.select('.x-panel'),在选择器中加上句点,这是按类名选择所必需的。

    【讨论】:

      【解决方案2】:

      bmoeskau 是对的,您可以使用 Ext.select('.x-panel') 来返回类 x-panel 的 div 集合。

      注意 Ext.get() 只返回一个元素,所以如果你想获得多个匹配,你应该使用 Ext.select() 或 Ext.query()。

      另外,Ext.select()返回Ext.CompositeElement,虽然文档没有列出,但它支持Ext.Element的所有方法,所以你的例子可以简单地写成:

      Ext.select('.x-panel').on('click', function(){ alert('test') });
      

      上面的代码将为每个x-panel添加点击操作的事件处理程序。

      【讨论】:

        【解决方案3】:

        用途:

        Ext.get(el); 
        

        如果您需要获取享元元素,请使用:

        Ext.fly(el);
        

        有关详细信息,请参阅静态 Ext 对象的 API 文档

        【讨论】:

          猜你喜欢
          • 2011-03-12
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2023-03-29
          • 2018-06-23
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多