这两天在看jQuery,就记下一些自己曾经苦苦寻找的东西。 首先就是为动态添加的元素绑定事件。比如在一个页面中,有一个空的div,由于某种原因,我们使用js为该div添加了内容,我们需要为刚添加的内容里某个元素添加事件,比如一个按钮,$('#sub').click(function(){//事件})或者$('#sub').bind('click', function(){//事件}),这样是不行的,这种写法只能为已经加载的元素绑定事件,动态添加的是无法绑定的。 不过jQuery已经为我们想好了,.live可以为任何时候添加的元素绑定事件。 由于只有在事件发生时才会在上面的第五步里做测试,因此在任何时候添加的元素都能够响应这个事件。 我们只需要 这样就可以了,后来添加的按钮也能绑定事件。 再一个就是DOM对象和jQuery对象之间的转换。 如果我们不使用jQuery,我们会这样获取元素: 用jQuery:var divid = $('#id'); DOM对象转换为jQuery对象:var jQid = $(DOMid); jQUery对象转换为DOM对象:var DOMid = $('#jQid')[0];.live()
方法能对一个还没有添加进DOM的元素有效,是由于使用了事件委托:绑定在祖先元素上的事件处理函数可以对在后代上触发的事件作出回应。传递给 .live() 的事件处理函数不会绑定在元素上,而是把他作为一个特殊的事件处理函数,绑定在 DOM 树的根节点上。在我们的例子中,当点击新的元素后,会依次发生下列步骤:
$('#sub').live('click', function(){
//事件
});
var divid = document.getElementById('id');
var divname = document.getElementByTagName('name');
版权属于:
加速器之家
作品采用:
《
署名-非商业性使用-相同方式共享 4.0 国际 (CC BY-NC-SA 4.0)
》许可协议授权
评论