时间:2021-05-25
最简单的莫过于使用click方法:
所有浏览器都弹出了1。但是如果把input换成div呢?
这次Safari/Chrome中没有弹出2。即不是所有浏览器中的所有元素都支持click方法。事实上只有input/button元素在所有浏览器才具有click方法。
以上的事件都是直接添加在html属性中的(内联事件)。click方法能触发使用el.onXXX/addEventListener/attachEvent添加的事件吗?
所有浏览器都依次弹出了3,4。说明支持click方法的元素,无论使用内联方式还是el.onXX又或addEventListener/attachEvent添加事件都能触发。
click方法已经写入了HTML5草案,如果Safari/Chrome完成对剩下的元素的实现(非input/button)。那么模拟点击将十分简单,直接调用click方法。Firefox也是刚刚在版本5中实现对非input/button元素的click方法实现,这点Safari/Chrome有些落后了。
既然Safari/Chrome中click不可用, 我们就用dispatchEvent来实现了。
依次弹出了1,2,3。换成其它事件添加方式亦可触发。IE中还有个fireEvent去主动触发事件,当然如果是点击事件使用click更好。非点击事件则只能通过fireEvent去触发了。
最后给出我的triggerClick方法,实现方式判断浏览器,判断nodeName。依据是Safari/Chrome不支持非input/button元素的click方法。
上面的实现方式让你能明白浏览器的差异,但实现其实有点罗嗦。直接判断元素是否具有click方法即可,Safari/Chrome中非input/button元素没有click方法,返回undefined。
特性判断也比浏览器判断有更好的前瞻性,比如Safari/Chrome在后续版本中实现了非input/button元素的click方法,那么特性判断的函数仍然可以向下兼容。
以上所述就是本文的全部内容了,希望大家能够喜欢
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
1、click只能为页面现有的元素绑定点击事件,如果是动态生成的新的元素,是没有事件的2、而(document).on(“click”,”指定的元素”,func
一.on('clcik')与$('').clcik()方法的区别:on('clcik'):事件委托机制//在body元素上绑定click事件处理函数handle
下面是jQuery判断元素上是否绑定了指定事件的方法。 例如下面的代码可以判断id=testdiv的元素是否绑定的click事件,这个判断只针对jQuer
只在元素上使用submit事件如果要在form中绑定事件处理程序时,应该只在元素上绑定submit事件,而不是给提交按钮绑定click事件。March:这个方式
click([[data],fn])返回值:jQuery概述触发每一个匹配元素的click事件。这个函数会调用执行绑定到click事件的所有函数。参数fnFun