目录
(一)有关框架
(二)文件组织与代码组织
(三)JS与FLASH交互
(四)ajax局部刷新与RPC
(五)获取设置元素样式与监听元素事件
(六)页面元素的创建调整与关联
(七)浏览器兼容性问题
(八)WEB软件的前端架构实践
获取与设置element的样式
一、class or style
某些情况下只能设置style属性:
1、属性值是一个变量,如动态设置宽高。
2、为了兼容某些浏览器
其他情况下,尽量用class,理由有:
- 做CSS的人员,可以方便更改
- class可以有一形象的名,使代码更易读
- 要加一条样式设置或者做一些兼容性的HACK,比较方便
- 业务逻辑与表现分离
- class设置和移除更加方便,style则非常麻烦
二、doc声明与浏览器兼容性
HTML文档头部的DOC声明与不同版本的浏览器都有可能影响到你获取或者设置的样式,对于这个问题,我非常烦恼,我的策略是GOOGLE别人的做法,然后一遍遍的测试。
三、 UI widget中的做法
在UI widget的代码里面设置和获取元素样式,有两种做法,一种是每次从元素style属性上获当前值,然后设置。第二种是,由widget对象自己维护一个变量,变化此变量时同时变化元素样式。我倾向于第二种,理由如下
- style属性值更易于被外部因素影响而被改变
- 获取更加方便,style获取到的值可能还要做进一步的处理
- 逻辑更清晰,更易于重构,如方便表现与逻辑分离、应用状态、观察者等设计模式
绑定函数到element事件的几种方式
这里讨论的是没有被封装成对象的页面元素的绑定,除非指明了是UI widget
一、绑定行为和响应函数都在页面上
这是嵌入脚本满天飞时的做法,还经常有重复定义响应函数的行为,A TAB有一个save函数,过一会用户点击了B TAB,又有一个新的save出现,虽然也能用,但要面对这种状态,很无语。
二、把绑定行为和响应函数都在外部脚本中
这是我改过头了的做法,我把响应函数根据业务逻辑放到不同类里面,然后把绑定也一个也不留的全部放到页面载入后或者AJAX的回调里面,但页面状态是变化的,要弄清楚当前处于什么状态,然后决定要绑哪些元素。结果是在绑定这件事情上一团乱麻。
三、根据不同场景来决定如何绑定
这是目前的做法,感觉还可以。做法如下:
1、在JS方法里面绑定的情况
如果它是在页面中是比较独立的一块(从结构和内容上看),比如sidebar,那么把它的逻辑独立存放于一个独立脚本的类里面,绑定行为放在初始化方法里面。在页面载入或Ajax载入完后调用初始化方法。
如果它是一个全站都要用到的UI WIDGET,比如TAB、textarea的输入提示,那么给容器一个class,在全站layout的初始化代码中和每个ajax载入页面的回调里查询到这些元素,然后调用相关的UI widget类初始化绑定和行为。目前感觉在每个ajax 回调里都要做查询绑定比较麻烦,考虑试试jQuery全局ajax设定来做这件事。
如果它是在特定页面要用到的UI WIDGET,在特定页面的初始化方法里面初始化这个UI widget。
2、在元素事件属性上绑定的情况
如果这一个局部要绑定到的行为很多,而且它可能经常刷新,此时如果每次都查询这些元素进行绑定,也比较费时费力,所以直接把绑定写在元素事件属性上。
如果绑定到元素事件响应函数的逻辑比较简单,只是一个行为,比如隐藏元素。或者顺序执行的两个行为,比如清空表单元素内容,并且重新focus。这些情况下,我是直接把JS代码写在事件属性上。但这里有一个前提是,这些代码很短,不影响到维护与阅读。
非同于上面的情况,且响应函数逻辑有点复杂,此时把响应函数写在相关业务的类里面,然后绑定还是写在事件属性上。
分享到:
相关推荐
6. **样式计算与样式对象**:除了内联样式,JavaScript还可以通过`window.getComputedStyle(element)`获取元素的计算样式,包括继承和CSS规则集中的样式。这在需要获取元素实际显示的样式时非常有用。 7. **CSS变量...
标题中的“Javascript获取相同CSS样式的元素”是一个关于JavaScript编程的话题,主要涉及到如何在JavaScript中检索和操作具有相同CSS样式的HTML元素。在Web开发中,JavaScript常常用于动态地改变页面样式,或者根据...
这个名为"js监听滚动条改变导航元素位置和样式.rar"的压缩包文件提供了一个实例,教你如何利用原生JavaScript来实现这一功能,特别适合初学者学习。以下是关于这个主题的详细讲解。 首先,我们需要理解滚动条事件。...
1. **事件委托**:通过在父元素上设置事件监听器,可以捕获到子元素的事件,这样可以减少内存占用,因为只需要为父元素绑定一次事件处理函数,而不是每个子元素都绑定。 2. **动态元素的事件处理**:如果动态添加或...
在JavaScript(JS)中改变元素样式是Web开发中常见的任务,它允许动态更新网页的外观和行为。通过JavaScript,我们可以响应用户的交互、响应数据变化或实现动态效果。本篇文章将详细探讨如何使用JavaScript来操作...
在实际开发中,结合事件监听,如`click`事件,可以实现更复杂的交互效果,例如动态改变元素样式或者实现动画效果。 DOM操作元素样式是JavaScript和jQuery的重要部分,熟练掌握这些方法和技巧,能够提升网页的交互性...
总结,JavaScript为节点设置样式和动态绑定事件是构建交互式网页的核心技术。熟练掌握这些技巧,可以让我们创建出丰富多样的用户体验。在实际开发中,结合HTML、CSS和JavaScript,我们可以构建出功能强大、视觉效果...
// 在这里执行相应操作,如改变元素样式、显示隐藏内容等 } }); ``` 这种滚动事件的监听机制可以极大地增强网页的交互性,使得用户在浏览过程中有更流畅、自然的感受。在实际项目中,我们还可以结合CSS3动画和...
通过JavaScript获取或设置CSS样式属性,可以实现精细的样式控制;使用CSS3的动画和过渡效果,再配合JavaScript的定时器,可以创建流畅的动态效果。 在文件名列表中提到的“02、03、01”可能对应的是教程或代码示例...
在本实例中,我们将深入探讨jQuery如何设置元素样式,包括添加、删除和动态切换CSS类,以及直接获取和设置样式属性。 1. **添加、删除CSS类** jQuery 提供了 `addClass()` 和 `removeClass()` 方法来为元素添加或...
2. 事件处理:JavaScript监听用户交互(如点击、滚动等),并通过CSS修改元素样式,实现交互反馈。 3. 动画效果:利用setTimeout和setInterval实现定时器,结合CSS改变元素位置、透明度等,创建动画效果。 4. CSS预...
在JavaScript中,对DIV的操作主要包括获取元素、修改属性、添加和删除事件监听器,以及动态创建和销毁元素。对于弹出窗口,模态对话框和非模态弹出框的实现主要依赖于CSS和JavaScript的结合使用,浮动窗口则涉及到...
JavaScript 获取内联样式与嵌入式样式是前端开发中常见的需求,这有助于...以上就是JavaScript获取内联样式与嵌入式样式的实例。了解并熟练运用这些方法,能帮助我们在前端开发中实现更灵活的样式控制,提升用户体验。
同时,使用jQuery绑定了oninputpropertychange事件,显示了在输入过程中实时获取输入框长度,并根据输入值是否存在来改变其他元素的样式。 在介绍完各种监听方法后,文章还提供了一些兼容IE浏览器的JavaScript函数...
9. **事件冒泡与事件捕获** - 事件冒泡:事件从最深的节点开始,逐级向上层节点传播事件。 - 事件捕获:事件从最外层节点开始,逐级向下层节点传播事件。 - `event.stopPropagation()`阻止事件冒泡,`event....
例如,我们可以使用`document.getElementById`或`document.querySelector`方法获取特定的HTML元素,然后通过`.style`属性来改变其CSS样式。例如: ```javascript var element = document.getElementById('myElement...
此外,JavaScript还支持事件委托,即在父元素上设置事件监听器,处理子元素的事件。这种方式可以减少内存占用,提高性能。例如,一个列表中有很多项,而我们只想在点击某一项时执行操作,可以在列表容器上设置事件...
总之,解决CSS设置元素`width: 100%`在`body`作为父元素时失效的方法包括:清除父元素(如`body`)的默认样式,使用JavaScript动态设置宽度,或者结合媒体查询实现响应式布局。每种方法都有其适用场景,开发者应根据...
通过JavaScript设置事件监听器,可以让元素在用户交互下触发函数,从而实现动态效果。在上面的示例中,通过为按钮添加onclick事件监听器,当用户点击按钮时,相应的事件处理函数就会被调用,执行动态设置样式的效果...
4. **元素事件绑定与解除**:`document.captureEvents`和`document.all.xxx.detachEvent`允许对元素绑定或解除事件监听器,实现了事件的精确控制。 5. **下拉框操作**:`下拉框.options`属性提供了对下拉列表的访问...