深入浏览器兼容

2017-12-06  本文已影响0人  我_巨可爱

jQuery 使用 Hook 进行兼容,一般形式如下

var valHooks = {
  // 不同于 Object.defineProperty 中 set 和 get有默认参数,这里的 get 和 set 是自己传参
  get: function () {},
  set: function () {}
}

使用形式

// 某种条件下,需要使用 Hook
var hook = valHooks
// 判断 Hook 中有 set 或者 get 吗?因为,并不是所有的 Hook 有 set 和 get
// 那么兼容问题就在 hook  中被解决了
if (hook && "set" in hook) { hook.set(ele,name,value) }

jquery 中涉及兼容的几种方法

研究的是 2.0 以上的版本,没有很多处理 ie8-9 兼容的代码。这里以 val 为例,它一般用于表单元素,在没有 value 的情况下会获得文本

valHook

  1. 有 valHook 的几种元素,比如select,option,radio,checkbox
上一篇下一篇

猜你喜欢

热点阅读