
$(selector).click() $(selector).trigger( "click" ) $(selector).on( "click", handler ) //这三个和 dom.click() //有什么区别 <a href="/testtest/test.html"/> $("a[href*='testtest']")[0].click()//直接访问该链接 $("a[href*='testtest']").click()//因为没有 onclick 所以没反应,也没访问链接 1 loading 2015 年 10 月 29 日 via Android 浏览器事件 jquery 文档 麻烦你先去看看! |
2 undef404 OP @loading 看了 jQuery 的文档,还是没搞清楚,$(selector).click()为什么不会触发 a href 的默认 click 事件,访问连接 |
3 YuJianrong 2015 年 10 月 29 日 @undef404 jQuery 事件系统是 jQuery 内虚拟出来的(外部事件会被 jQuery 监听并转换成虚拟的内部事件),所以 .click() 并不会真的在 dom 对象上产生一个 click 事件,只是产生了一个虚拟事件,然后用 jquery 的 on("click")监听的事件才会被响应。 如果你要模拟真实的点击事件的话,要用原生方法: xxx.dispatchEvent(new MouseEvent("click")); 这样。 |
4 yyfearth 2015 年 10 月 29 日 @undef404 你这样调用 click 事件 只是调用你绑定在 click 上面的 functions 而已 不会调用浏览器本身的功能 要调用浏览器本身的功能需要用到 dispatchEvent https://developer.mozilla.org/samples/domref/dispatchEvent.html |
5 banri 2015 年 10 月 29 日 jQuery 最后返回的是一个 jQuery 对象,而加上 [0] 之后会返回 DOM 节点 .click() 在 内部调用了 .on('click') 算是一种快捷方式 .on 方法是添加事件监听,也就是说,当你鼠标点击时,触发 xx 事件 而.trigger 是主动触发事件,比如.trigger('click') 就是主动触发了某元素上的点击事件,比如你可以设置网页一加载完成,就主动触发了点击某按钮 |
6 unknownservice 2015 年 10 月 29 日 click 和 href 跳转是两个事件,而且执行先后跟浏览器还有关系。 调用 click 只会触发绑定在 click 上的事件,并不会真的模拟一个点击鼠标的操作。 over |
8 unknownservice 2015 年 10 月 29 日 |
9 YuJianrong 2015 年 10 月 29 日 @YuJianrong 哎呀之前写错了和虚拟事件无关…… jquery 的 trigger("click") 其实是在 dom 节点上调用了 element.click() 方法,这个方法不会做一些浏览器缺省行为(比如跳转),后者必须用 dispatchEvent 来做。 |
10 Moker 2015 年 10 月 29 日 我举个前几天碰到的一个问题。 用 ajax 加载出来的 list 里面的 btn click()是无法直接触发 click 事件,而原来的 list 却可以 而换成 on(‘ click ’)就可以 |