ExtJS DOM元素操作实战经验分享
最早接触网页DOM操作时,还是做毕业设计那会儿,用jQuery一把梭。后来工作转去做C++开发,两年后重回前端领域,发现工具已经变成了ExtJS。程序员这个行业,确实需要持续学习新技术——看看周围同事的发量,就知道这话不假。好了,今天这篇就分享一下ExtJS操作DOM元素的实战经验。
首先来看最基础的操作:为元素绑定点击事件。
复制代码 代码如下:
var elem = Ext.get('start');
elem.on('click', function(e, t) {
alert(t.id);
});
如果需要批量操作多个元素,可以使用Ext.query方法。例如下面这段代码,直接获取页面中第一个body节点并修改它的样式类。
复制代码 代码如下:
var body = Ext.query('body')[0];
body.className = "myStyle";
在实际项目中,经常需要统一更改某一类元素的信息提示样式。如果仅靠CSS类来筛选,在需要隐藏或切换时就会遇到困难——因为元素可能已经移除了某个class,无法再通过它来定位。后来从同事那里学到一个小技巧:自定义属性。下面举个例子:
复制代码 代码如下:
// 这样多个同样属于 group 下的元素,可以通过此种方式获取:
var elemMessageArray = Ext.select("span[group='message_group']");
var newCssObj = {};
if (isInfo) {
newCssObj["class"] = "info";
} else {
newCssObj["class"] = "error";
}
// 然后对每个元素重新设置css样式就行了
elemMessageArray.each( function(el) {
el.set(newCssObj);
el.update(text);
el.show("display");
});
注意这里使用了 show("display") 来控制显示,而不是直接调用 setDisplayed。为什么呢?这就引出了显示与隐藏的一个常见误区。
之前常用的写法是这样的:
复制代码 代码如下:
Uncompleted = Ext.get('uncompleted');
elemUncompleted.setDisplayed(true);
这种方式虽然能提供动画效果,但问题在于:元素虽然不可见了,却仍然占据页面空间——这往往不是我们期望的布局效果。后来发现,使用 show("display") 和 hide("display") 虽然没有了动画,但元素会完全隐藏,不影响页面布局。文档里其实有说明:
隐藏此元素 - 根据显示模式决定使用"display"还是"visibility"。详情请参考 setVisible 方法。
说到底,仔细阅读官方文档才是程序员的终极武器——尤其是那些藏在角落里的参数说明,往往能帮你节省大量调试时间。
游乐网为非赢利性网站,所展示的游戏/软件/文章内容均来自于互联网或第三方用户上传分享,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系youleyoucom@outlook.com。
同类文章
深入理解调用栈与异步任务的状态同步机制
调用栈仅记录同步执行流,异步回调由事件循环调度、任务队列存放,闭包维持作用域。执行时新建上下文入栈,不复用旧栈帧。调用栈不主动同步异步状态,事件循环是真正的协调者。
HTML自定义元素实现跨组件通信的完整指南
自定义元素跨组件通信需依赖CustomEvent,且bubbles和composed必须同时设为true才能穿透ShadowDOM。事件监听应挂载在document或父容器等合适节点,避免使用DOM查找或data ARIA属性替代事件通信,从而确保事件正确穿越边界,保持跨组件通信的可靠性。
JavaScript static关键字在工具库构建中的应用
在JavaScript工具库构建中,static关键字将函数或常量挂载到类名上,无需实例化即可调用,适用于无状态操作如日期格式化、字符串截断、深克隆,并统一管理配置常量与实现工厂方法,但需避免依赖实例状态。
如何避免静态初始化块异常导致应用冷启动中断
防范静态初始化失败导致应用中断,需用try-catch兜住异常并提供安全默认值;将高风险逻辑移出static块,改用延迟加载或Holder模式;显式控制初始化顺序并增强可观测性;诊断时直击ExceptionInInitializerError的根因。
虚拟DOM标签级diff比对优化过程详解
虚拟DOMdiff以节点为单位,按层级同标签优先判断复用,通过key精准识别节点身份,配合细粒度属性更新及短路优化,避免全量递归比较,只更新变化的节点,跳过冗余计算,将时间复杂度从O(n³)降至接近O(n),从而大幅提升渲染性能。
- 日榜
- 周榜
- 月榜
相关攻略
2026-07-08 06:57
2026-07-08 06:56
2026-07-08 06:56
2026-07-08 06:56
2026-07-08 06:56
2026-07-08 06:56
2026-07-08 06:56
2026-07-08 06:55
热门教程
- 游戏攻略
- 安卓教程
- 苹果教程
- 电脑教程
热门话题

