jQuery 中 .attr() 与 .prop() 的用法浅析

在 jQuery 1.6 以后的版本中,大多数属性可以使用.attr()获取,但是一些特殊情况,必须使用.prop()

参考链接:http://api.jquery.com/prop/ & .prop vs .attr()

第二个链接中有两点说出了attribute(特性)与 property(属性)的区别:

  1. attribute 的值只能是字符串,而 property 的值可以是任何类型,比如checked的 property 是布尔值,style的 property 是包含单个样式的对象,size的 property 是数字。
  2. 虽然一个元素的 attribute 与 property 有相同的名称,更新其中一个通过会更新另一个,但对于一input元素一些写入标签的特殊attribute,比如valuechecked,property 总是表示他的最新状态,而 attribute 表示的是写在代码文件中的初始值( attribute 中的valuechecked对应 property 中的defaultValuedefaultChecked

查看全文

使用 TypeScript 重写 jQuery 插件

本文讲述使用 TypeScript 重写 jQuery 插件的历程,以及其中一些基本注意事项。

GitHub地址:codelegant/input-filter
Git@OSC地址:chuanfeng/input-filter

本文代码演示所有编辑器:Visual Studio Code(V 0.9.1)。

首先,TypeScript 比较接近强类型语言(由 C# 之父主导的项目,理所当然带有 C# 风格),在编码阶段提供 Intellisense 提示、Go Definition、Find All References、Rename… 等编译语言才有的功能,而编译时可预先抓出参数,类型,方法错误,降低执行阶段发现修复的高昂成本,首先要注意的就是 Find ALL References

查看全文

编写 input-filter 插件中的所知所得

GitHub:codelegant/input-filter,Git@OSC:chuanfeng/input-filter

attachEvent 中的 this

事件处理程序在事件目标上定义,所以它们作为这个对象的方法来调用并不出人意料。这就是说,在事件处理程序内,this关键字指的是事件目标。

但是,对于attachEvent()来说,这是不对的:使用achEvent()注册的处理程序作为函数调用,它们的 this 值是全局(Window)对象。

解决方案:

查看全文