DOM

一、获取元素在集合中下标的方法(伪代码)。

1、设置自定义属性

Element.setAttribute(name,value)

2、通过为对象添加属性的方式

element.index = value

3、通过each方法

collection.each(index,val)

二、常见兼容性问题解决

1、在ie6-8中无法通过为通过事件处理程序的参数直接获取事件对象而是通过window.event对象获取。解决办法:

div.onclick = function(e) {
                e = e || window.event;
   }

2、ie9之前不支持element.addEventListener()注册事件,而是使用element.attacheEvent()注册事件。解决方案:

function addEventListener(ele, type, fn) {
            if (ele.addEventListener) {
                ele.addEventListener(type, fn)
            } else if (ele.attacheEvent) {
                ele.attacheEvent(type, fn);
            } else {
                ele['on' + type] = fn;
            }
        }

3、阻住事件的默认行为

 a.onclick = function(e) {
            // 普通浏览器 e.preventDefault();  方法
            e.preventDefault();
            // 低版本浏览器 ie678  returnValue  属性
            e.returnValue = false;
            // 我们可以利用return false 也能阻止默认行为 没有兼容性问题
            return false;
   }

4、阻止冒泡的兼容型处理

 

a.onclick = function(e) {
//标准
            if (e && e.stopPropagation) {
                e.stopPropagation();
            } else {
//ie9以前的版本
                window.event.cancelBubble = true;
            }
        }

四、利用事件委托注册事件

<ul>
        <li>知否知否,点我应有弹框在手!</li>
        <li>知否知否,点我应有弹框在手!</li>
        <li>知否知否,点我应有弹框在手!</li>
        <li>知否知否,点我应有弹框在手!</li>
        <li>知否知否,点我应有弹框在手!</li>
    </ul>
    <script>
        // 事件委托的核心原理:给父节点添加侦听器, 利用事件冒泡影响每一个子节点
        var ul = document.querySelector('ul');
        ul.addEventListener('click', function(e) {
            // e.target 这个可以得到我们点击的对象
            e.target.style.backgroundColor = 'pink';
        })
    </script>

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值