Extjs 5.1 事件在 Ext.select.不能在 Ext.dom.Fly 实例上使用 addListener()
Extjs 5.1 Event on a Ext.select. Cannot use addListener() on Ext.dom.Fly instances
我正在学习EXTjs。我正在回顾本教程,并从那里玩提示。当我发现Ext.select('p').on('click', paragraphClicked);
会导致错误时。
"[E] Ext.dom.Fly.addListener(): Cannot use addListener() on Ext.dom.Fly instances. Please use Ext.get() to retrieve an Ext.dom.Element instance instead."
{msg: "Cannot use addListener() on Ext.dom.Fly instances. Please use Ext.get() to retrieve an Ext.dom.Element instance instead.", sourceMethod: "addListener", sourceClass: "Ext.dom.Fly"}
我制作了一个 Jsfiddle,您可以在控制台中找到此错误。以下是来源:
.HTML:
<input type="button" id="myButton" value="My Button" />
<p>first paragraph</p>
<p class="myClass">second paragraph</p>
<p>third one</p>
.JS:
Ext.onReady(function() {
var paragraphClicked = function(e) {
Ext.get(e.target).highlight();
};
Ext.select('p').on('click', paragraphClicked);
});
拜托,你能解释一下我出了什么问题吗?以及我应该如何将事件绑定到使用 Ext.select 选择的元素。它适用于 ExtJS 4,不适用于 5。考虑我是 Ext.js 的新手。任何帮助,不胜感激。
该错误几乎解释了正在发生的事情。您不能将事件绑定到蝇量级元素包装器Ext.dom.Fly
的实例,因为这是一个被重用的轻量级对象,并且实际上仅在下次调用 Ext.select
之类的东西之前有效。
这在 ExtJS 4.2 下起作用的原因是Ext.select()
调用的结果 - 一个Ext.dom.CompositeElementLite
实例 - 曾经与Ext.dom.Element
类一起使用。出于性能原因,在 ExtJS 5 中,它现在使用 Ext.dom.Fly
。
改用Ext.select('p', true)
;这将创建不使用蝇量级版本的Ext.dom.CompositeElement
实例。
相关文章:
- Extending Ext.data.NodeInterface
- Ext.js从json构建模型关系的问题
- Query JS Ext.data.Store
- 将两个ext.TabPanels滚动到一起
- 在EXT窗体面板中填充EXT JS存储
- 从Sencha Touch迁移到EXT JS 6-Contoller的默认/空路由
- 如何使用tspan拆分Ext.draw.text中的长文本
- 如何使用.log数据文件显示EXT-js网格
- Google可视化addListener调用函数引用错误
- Sencha Ext JS排序标准以字符串而不是JSON的形式发送
- Modx数据包管理器ext-all.js错误
- 在Javascript中向Ext.form.Formpanel添加多个按钮
- ext-js网格面板滚动条不适用于jquery
- ext.js根据行和单元格索引隐藏某些单元格
- 在GXT中激活上下文菜单时,如何保持选中的文本高亮显示?(EXT GWT 2.x)
- 我想在ext.js4.2中将树存储动态绑定到树面板中
- 如何在chrome启动时激发chrome.webRequest.onBeforeRequest.addListener(
- 在 Ext JS 4 MVC 应用中,什么应该负责加载商店
- 'Ext Js'表单字段验证使用'验证器'
- Extjs 5.1 事件在 Ext.select.不能在 Ext.dom.Fly 实例上使用 addListener()