jQuery模拟鼠标点击事件失效的问题

时间:2021-10-04 21:21:50

最近使用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()去触发。