jasondan

最近使用jQuery操作浏览器获取数据,需要对分页的信息进行处理,发现直接使用$(\'div#pager a.next\').click();的这种写法无法触发点击事件。

使用trigger(\'click\')的写法也是无济于事。

在网上一顿扒拉后,发现使用$(\'div#pager a.next\')[0].click();就OK了。

$(\'div#pager a.next\')[0]这种写法其实就相当于把jQuery对象转换为Dom对象了。

模拟点击不生效的原因

如果使用jQuery的写法:$(\'a#test\').click(function(){alert(\'ok\')});为元素绑定了click事件,那么使用$(\'a#test\').click()是可以生效的,如果没有绑定click事件,当点击a#test的时候事件通过冒泡会传给父级的节点,父级节点会处理点击事件(跟我遇到的分页的情形是一样的),那么这时就需要模拟DOM点击了,也就是通过$(\'a#test\')[0].click()去触发。

分类:

技术点:

相关文章: