美文网首页
动态为元素绑定事件

动态为元素绑定事件

作者: yuanKevin | 来源:发表于2019-04-05 15:33 被阅读0次

对于在页面加载时就被加载的元素,我们可以直接使用下面代码来为元素绑定事件

elementObject.onXXX = function(){}

但是对于页面动态新增的元素,是没有被绑定事件的,那么我们如何为这些新增元素绑定事件呢?

1.通过addEventListener在新元素被添加时为其绑定事件(不支持IE8及以下)
elementObject.addEventListener(eventName,handle,useCapture)

eventName是要绑定的事件,如click,change, handle是句柄,可以是myFunction(),也可以是匿名函数,直接写function(){},useCapture是

参数 说明
elementObject DOM对象(即DOM元素)
eventName 绑定的事件,如click,change,不需要on
handle 句柄,即用来处理事件的函数。可以是函数名myFunction,也可以是匿名函数,直接写function(){}
useCapture Boolean类型,是否使用捕获,一般用false 。
兼容性 addEventListener()是标准的绑定事件监听函数的方法,是W3C所支持的,Chrome、FireFox、Opera、Safari、IE9.0及其以上版本都支持该函数;但是,IE8.0及其以下版本不支持该方法,它使用attachEvent()来绑定事件监听函数。所以,这种绑定事件的方法必须要处理浏览器兼容问题。

*注意:事件句柄函数是指“ 函数名 ”,不能带小括号。

2.通过attachEvent在新元素被添加时为其绑定事件(支持IE)
element.Object.attachEvent(eventName,handle)
参数 说明
elementObject DOM对象(即DOM元素)
eventName 事件名称。注意,与addEventListener()不同,这里的事件名称有“ on ”,如鼠标单击事件 onclick ,鼠标双击事件 ondoubleclick ,鼠标移入事件 onmouseover,鼠标移出事件 onmouseout 等。
handle 事件句柄函数,即用来处理事件的函数。

所以如果要兼容IE8及以下浏览器,则可以使用这样的方法

function addEvent(obj,type,handle){
  try{ // Chrome、FireFox、Opera、Safari、IE9.0及其以上版本
    obj.addEventListener(type,handle,false)
  }catch(e){
     // IE8.0及其以下版本
    try{
       obj.attachEvent('on' + type,handle);
    }catch{

    }
  }
}

相关文章

  • 动态为元素绑定事件

    对于在页面加载时就被加载的元素,我们可以直接使用下面代码来为元素绑定事件 但是对于页面动态新增的元素,是没有被绑定...

  • js 为动态添加的元素绑定事件

    想必大家都有遇到过,DOM动态添加的元素,你给它绑定的事件是不起作用的。目前有两种办法,为动态添加的元素绑定事件 ...

  • 苹果手机和安卓手机 动态绑定事件

    动态绑定事件: $(document).on('click','绑定的元素',function(){todo......

  • js跟jq的事件绑定以及解绑

    事件绑定 基本的事件绑定 其他事件绑定 On 替代bind方法/解绑用unbind on代替live动态创建元素绑...

  • 问题:动态生成的DOM无法绑定事件 2018-01-16-已解决

    动态生成的DOM无法绑定事件 (1)bind事件绑定只对dom中存在的元素有效,对于我们后来动态增加的元素是监测不...

  • js day22

    一、事件流 1.绑定事件 1)内联事件 //无限制第为元素绑定事件 2)事件监听 //无限制第为元素绑定事件 二、...

  • js为动态生成/添加的元素绑定事件

    有一段时间没有写js代码了,今天就说说js为动态生成/添加的元素绑定事件。 原理: 定位到需要绑定的元素(重点)-...

  • 给动态添加的数据绑定事件

    给要绑定事件的父级元素绑定事件 比如要给li绑定事件(li的每条数据都是动态加载上的) $(ul).on('cli...

  • 给未来元素绑定事件,兼容ios

    我们在项目中会遇到给动态插入的元素绑定点击事件,我们通常给元素绑定事件一般是这样做得 一般这样做就行了,但是动态插...

  • jquery动态绑定事件

    项目里常常会有给动态生成的元素绑定事件的情况给元素绑定事件一般使用on()就可以了,但是对于未生成的元素是无效的 ...

网友评论

      本文标题:动态为元素绑定事件

      本文链接:https://www.haomeiwen.com/subject/xhzhiqtx.html