html标签元素封装着实用的【事件】,但在很多时候,需要【模拟触发事件】,
比如 【按钮单机事件】 可以实实在在点击按钮触发该事件,但体验而言,很多时候需要js逻辑处理让实现 触发事件的效果 这时就用到了 【模拟触发事件 】 只需要把事件on封装事件 对象.封装事件() 即可 需要注意的 超链接 标签 =====================-=【转】 我尝试过多次用jQuery模拟用户点击a标签的功能,但都没有成功,并且困扰了很久。前段时间的一次发呆,冒出了新的想法,于是就动手进行了测试。 先看下边的代码:
上边的代码确实已经触发了点击A标签事件,但大家一定也会有疑问,为什么点击了A标签,却不触发A标签的跳转事件? 一开始还以为是浏览器做了相应的安全措施,屏蔽了JS对A标签的操作,后来发现,并不是这样的,接下来就说说其中的原委。 在开始解释前,我先抛出一个问题。在我们点击“A标签”的时候,究竟是点击了什么才发生的跳转? 1)点击的是“A标签”本身? 2)点击的是“A标签”中显示的文字? 说到这里,大家应该明白了,我们上边的代码已经证实了点击A标签本身,并不会触发跳转到指定链接的事件,就是说,我们平时都是点击的A标签中的文字了? 既然有了头绪,那么就来动手试试。
这下效果出来了,事实证明了上述的推断是正确的,所以要想用JS模拟点击A标签事件,就得先往A标签中的文字添加能被JS捕获的元素,然后再用JS模拟点击该元素即可。 2015年6月15日,根据@bl的补充,我们可以使用更加简单的方式实现同样的功能,代码如下:
打印$("a")[0],得到的是http://www.mo2g.com,但实际上$("a")[0]是一个object对象,或许说是DOM对象更贴切一些。经过测试发现,其实原生的js就已经实现了类似的点击a标签的功能。原生js写法类似如下:
只要获取到A标签的DOM对象,就能使用click()函数激活点击事件了。 |
相关文章
- 08-24python – 在Pyqt4中不触发的textChanged事件
- 08-24vue组件的hover事件模拟、给第三方组件绑定事件不生效问题
- 08-24【WPF】按钮需要点击两次才能触发事件,原因是这个...
- 08-24div无法触发blur事件解决办法
- 08-24JS移动端click事件延时解决方案
- 08-24后台动态添加的button,如何触发button_click事件?
- 08-24js阻止默认事件 (两种方法)及键盘事件onkeydown 、 onkeypress 、onkeyup实例讲解
- 08-24js点击事件
- 08-24封装addEventListener,removeEventListener指定元素添加事件及兼容问题js
- 08-24原生js-----------addEventListener添加事件和直接添加事件区别