Ext JS 点击事件

2023-11-22

我有以下事件:

Ext.onReady(function() {

    Ext.select('.gallery-item img').on('click', function(e) {
        Ext.select('.gallery-item').removeClass('gallery-item-selected');
        Ext.get(e.target).parent().addClass('gallery-item-selected');
    });

});

页面加载时效果很好。

然而,我动态地创建了类 gallery-item 的附加 div,其中包含图像。创建新项目后,单击事件将停止工作。

我怎样才能update这个绑定?

Thanks.


Ext.select选择所有元素,然后静态地向它们添加点击处理程序。对于具有相同处理程序的新元素,还必须在创建它们后将其添加到它们中。然而,这不是最佳方法。

在这种情况下,最好使用事件委托——向容器元素添加一个单击处理程序,然后根据单击的项目委托处理。这更加高效(只需要一个事件处理程序 fn)并且更加灵活。例如,如果您的包含元素的 id 为“gallery-ct”,则如下所示:

Ext.onReady(function() {
    Ext.get('gallery-ct').on('click', function(e, t){
      // t is the event target, i.e. the clicked item.
      // test to see if it is an item of the type you want to handle
      // (it is a DOM node so first convert to an Element)
      t = Ext.get(t);
      if(t.hasClass('gallery-item'){
        // radioClass automatically adds a class to the Element
        // and removes it from all siblings in one shot
        t.radioClass('gallery-item-selected');
      }
    });
});

EDIT:如果您的点击目标中可能有嵌套项目,那么您将需要采取稍微(但不是很多)更高级的方法,并在点击事件从被点击的元素中冒泡时查找您的目标(使用事件对象.getTarget)。如果您的目标在事件链中,因为它从单击的 el 中冒出,那么您就知道它仍然是有效的单击。更新的代码:

Ext.onReady(function() {
    Ext.get('gallery-ct').on('click', function(e, t){
      // disregard 't' in this case -- it could be a child element.
      // instead check the event's getTarget method which will 
      // return a reference to any matching element within the range
      // of bubbling (the second param is the range).  the true param 
      // is to return a full Ext.Element instead of a DOM node
      t = e.getTarget('.gallery-item', 3, true);
      if(t){
        // if t is non-null, you know a matching el was found
        t.radioClass('gallery-item-selected');
      }
    });
});
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Ext JS 点击事件 的相关文章

  • 如何动态更改悬停和按下的 extjs 按钮的背景

    你好 我需要能够动态更改按钮不同状态 正常 悬停 按下 的背景颜色 到目前为止我想到的如下 http jsfiddle net suamikim c3eHh http jsfiddle net suamikim c3eHh Ext onRe
  • 无法使用 JSON 结果将数据呈现到网格列中

    我有一家网格商店 里面有类似的东西 var gridStore Ext create Ext data Store proxy type ajax actionMethods read POST url getECIAgentWrapper
  • 如何在 TreePanel 上拖放后触发事件

    如何使用 Ext tree ViewDDPlugin 的事件 我有一个使用 DDPplugin 的 TreePanel 但我想知道如何监听 drop 事件 这就是我的代码的样子 var monPretree Ext create Ext t
  • 带有自定义按钮的 ExtJs 消息框

    如何使用自定义按钮显示 ExtJS 消息框 我想要一个带有自定义消息以及 取消 和 停用 按钮的消息框 请给一些想法 buttons text Cancel handler function Ext MessageBox hide subm
  • 在 Ext JS 构造函数中将项目推入数组会产生多个项目

    我有一个我定义的 Ext JS 类 在这个班级的constructor 我将一个文本字段推送到我的项目数组上 然后添加到我的测试字符串中 数组和字符串在类定义中都声明为空 但是 如果您尝试创建多个类实例 您将看到项目数组在每个实例之间共享
  • 如何创建适用于 iPhone、iPad 和 Android 的 Extjs 应用程序?

    有人成功创建了适用于 iPhone iPad 和 Android 的 Extjs 应用程序吗 我知道 Sencha 不支持移动设备上的 Extjs 但我不想创建另一个仅针对移动设备的网站 我不需要奇特的移动界面 只需要基本的功能 我做了一些
  • Extjs - 为选项卡生成唯一的 url

    据我了解 ExtJS 使用 AJAX 进行所有服务器端通信 并且理想情况下每个应用程序只有一页 但我正在探索为 ExtJS 选项卡生成唯一 URL 的可能性 然后用户可以从地址栏复制该 URL 以供以后使用 传统 Web 应用程序方法 使页
  • 如何确定 ExtJS 4 中 Ext.grid.Panel 的选定单元格?

    我如何获取 Ext grid Panel 的选定单元格 在 ExtJS 3 中可以通过以下方式实现 grid getSelectionModel getSelectedCell 在分机4中有 grid getSelectionModel s
  • 如何删除控制器ExtJS?

    我在应用程序中动态创建控制器 如下所示 var loadedController me app getController controller name loadedController init 使用后如何删除该控制器 谢谢 ExtJs
  • Sencha Touch Uncaught typeError:未定义不是函数

    我最近开始检查 Sencha Touch 在遵循教程时 我遇到了一些我似乎无法解决的问题 sencha 提供的 app js 中的一些基本代码运行良好 其他人似乎会出错 例如 new Ext application name NotesAp
  • ExtJS4:从 Ext.Application 访问全局变量

    我想加载一些应用程序特定的设置 并在加载应用程序时将它们保存为全局变量 我找到了如何创建和访问全局变量here https stackoverflow com questions 11615277 setting and accessing
  • ExtJS GridPanel 中的垂直滚动条

    我正在开发一个项目 其中页面上有一个 GridPanel 该面板可以显示任意数量的行 并且我设置了 autoHeight 属性 这会导致 GridPanel 扩展以适合行数 我现在想要一个水平滚动条 因为在某些分辨率下 并非所有列都会显示
  • NGINX 和 Spark Java 之间的跨源通信

    我正在将 NGINX 和 Sparkjava 用于我的 Web 应用程序 我确信我已正确启用所有 CORS 标头 尽管如此 我还是得到了 XMLHttpRequest 无法加载http localhost 3003 platformAPI
  • 如何让 ExtJS ComboBox 与文本一起显示?

    我想让以下内容显示在一行中 我尝试过使用样式浮动和显示 Show this input
  • ExtJS:简单表单忽略 formBind

    我有一个小问题让我发疯了好几天 我有一个表单面板 Ext define EC view PasswordPanel extend Ext form Panel alias widget pwdpanel bodyPadding 15 ini
  • 如何从视图中获取应用程序?

    如何从视图中获取我的应用程序 例如 考虑我有一个应用程序Boo有一个名为Boo view Foo List我想要得到Boo在视图中List Edit 查看这段代码 并查看第 20 行 Ext define Boo view Foo List
  • Sencha Touch 2 中的动画尺寸

    我正在尝试对数据视图的高度进行动画处理 但它目前只是在视口周围滑动面板 而不是将其保持在适当的位置并更改其高度 代码如下 Ext Anim run el slide from height height to height newHeigh
  • 如何在 Ext.form.TextField 中显示/隐藏密码

    您能告诉我如何在单击另一个按钮时显示 隐藏密码字段的输入文本吗 我尝试更改该文本字段的 inputType 属性 但它是在当时渲染的 因此没有影响 另一种方法是创建 2 个文本字段并使其可见 不可见 但我不喜欢这样做 因为它看起来像作弊 预
  • 在 Ajax 类型的 Extjs 5 存储上进行本地分页

    我正在开发一个应用程序 从一开始就加载所有数据并不是很不方便 我通过 Ajax 从服务器获取 json 数据 而我的商店执行此操作非常简单 Ext define MODIFE store CentroBeneficio extend Ext
  • 如何在 Ext.js 中自动完成 html 输入标签?

    如果您使用 Ext js 库 如何在输入文本区域中进行自动完成 更准确地说 如何根据迭代 Ajax 请求进行自动完成 例如jQuery 自动完成插件 http docs jquery com Plugins AutoComplete aut

随机推荐

  • 为什么我需要先更改绑定源位置才能保存更改

    我有一个小型演示 WinForms 应用程序 其中一份表格是我的 添加新人 表格 我使用了详细信息视图而不是DataGridView来自我的数据源 当我输入数据并单击导航器上的保存按钮时 更改为零 但是我输入了MovePrevious an
  • Ruby on Rails 中的 send_data 与电子表格插件结合使用时遇到困难

    我在控制器中有一个函数 它接受一些规范并生成有关它们的报告 这个函数 user report 在视图中被调用 controller gt reports action gt user report print state gt 打印 gt
  • 替换多个换行符、制表符和空格[重复]

    这个问题在这里已经有答案了 我想用一个换行符替换多个换行符 用一个空格替换多个空格 I tried preg replace n n n text 并失败了 我还在 text 上完成这项工作以进行格式化 text wordwrap text
  • Gradle + Buildship - 在 JAR 和项目之间切换依赖关系

    我在按照我想要的方式配置 Buildship for Eclipse 时遇到一些问题 目前 我始终在 Eclipse 中打开超过 50 个项目 但我想改为仅在 Eclipse 中积极处理的项目 而其他项目将使用 Maven 存储库来解决其依
  • Nodejs POST 请求多部分/表单数据

    我正在尝试通过 POST 请求上传照片request module 根据自述文件我应该能够做到这一点 var r request post http posttestserver com post php requestCallback v
  • 使用 COM 互操作将 BSTR 从 C++ 编组到 C#

    我有一个用 C 编写的进程外 COM 服务器 由一些 C 客户端代码调用 服务器接口之一上的方法向客户端返回一个大的 BSTR 我怀疑这会导致内存泄漏 该代码有效 但我正在寻求有关编组 BSTR 的帮助 稍微简化一下 服务器方法的 IDL
  • htaccess - 重定向到子文件夹而不更改浏览器 URL

    我有一个域 其中包含具有 Web 应用程序结构的子文件夹 我添加了一个 htaccess在我的根域上指向我的子文件夹 Web 应用程序上的公共文件夹 它工作正常 但是当我输入时www example com浏览器 URL 更改为www ex
  • 无法更新 Xcode 4.2。错误:请查阅 var/log/install.log 了解更多详细信息?

    UPDATE 既然这个问题得到了一些看法 我想我最好强调这样一个事实 我解决了问题简单地通过从 Mac App Store 重新下载 Xcode 重新安装后 它甚至给了我一个方便的选项来删除以前的版本并将其替换为新版本 希望这可以帮助遇到同
  • 从 std::thread 获取返回码? [复制]

    这个问题在这里已经有答案了 可能的重复 C std thread 的简单返回值 有没有办法从 std thread 获取返回码 我有一个返回整数的函数 我希望能够在线程执行完毕时从该函数获取返回代码 不 不是这样的std thread is
  • 有界度生成树中的 np 完整性

    我理解为什么有界度生成树被认为是具有 1 或 2 度的 NP 完全 它是哈密顿路径问题的一个实例 但我不明白为什么这适用于度 gt 2 如果有人可以解释为什么这是度 gt 2 的 NP 完全问题 这将是最有帮助的 好吧 我认为你可以从有界
  • R Shiny:在服务器端使用 Actionbutton 的 Onclick 选项

    我想制作一个闪亮的应用程序 用户可以在其中按下操作按钮 然后触发服务器端的一些代码 在 www 文件夹中创建一个文件 然后打开 下载该文件 假设该文件是 test txt 在我的例子中 它将是各种 R Excel 和 exe 文件 这些文件
  • Visual Studio 2010“按任意键继续...”不显示[关闭]

    很难说出这里问的是什么 这个问题模棱两可 含糊不清 不完整 过于宽泛或言辞激烈 无法以目前的形式合理回答 如需帮助澄清此问题以便重新打开 访问帮助中心 当我的应用程序完成执行时 按任意键继续 字样不会显示在控制台中 我知道这个提示应该在 启
  • 聚合匹配的项目在 mongodb 中不起作用

    我正在尝试根据某些匹配条件获取数据 首先我尝试过这个 这里的ending date是完整的日期格式 Offer aggregate match carer id req params carer id status 3 group id y
  • JavaScript 按钮重定向

    试图让我的按钮充当链接 尝试过 a 标签 如果您在新选项卡中打开它会起作用 但如果您单击它则不起作用 然后尝试了这段代码 但什么也没有 建议 a
  • Angular-cli 资产优化中的“JavaScript 堆内存不足”

    我正在 Angular cli 项目中创建传单地图 地图图块本地存储在 assets 文件夹中 因为它是栅格地图 问题是 当我有很多地图缩放级别时 我有超过 28 万张图像 大小大约为 1 1 GB 而且它会变得更大 当我使用ng serv
  • 如何在 Java 中查找给定服务器的 DNS MX 记录?

    有人知道如何使用标准库在java中获取MX地址 例如来自gmail com 吗 或者我需要下载外部的吗 我正在使用 netbeans 如果它有帮助的话 如果它为此提供了一些东西 我也在java中为此寻找标准库 不成功 然后我用过dnsjav
  • 获取浏览器中的快捷键组合

    我想制作一个页面 其中某些输入和链接附加有访问键 并且我想通知用户需要按什么组合键来激活输入或链接 有没有办法通过JavaScript自动获取浏览器的accesskey组合键 或者我是否需要检测它是哪个浏览器 然后只使用一个存储浏览器使用的
  • 如何在 vim 中用 & 符号替换?

    正如标题所说 我想用与号 替换 制表符 I use s t g 当然这是行不通的 我在 mac os x 上使用 vim 如果这有影响的话 谢谢 您确定问题出在 符号上吗 我收到了更多关于该标签的投诉 别忘了逃避它 s t g
  • 求大 n 和 k 模 m 的二项式系数

    我想计算 nCk mod m 具有以下约束 n k m 10 9 7 我读过这篇文章 但这里 m 的值为 1009 因此 使用卢卡斯定理 我们只需要计算 1009 1009 个不同的 aCb 值 其中 a b 如何在上述限制下做到这一点 我
  • Ext JS 点击事件

    我有以下事件 Ext onReady function Ext select gallery item img on click function e Ext select gallery item removeClass gallery