在原生js中如果要模拟事件其实比较麻烦的事情,因为要考虑到各个浏览器对dom标准的兼容,同时还要进行多个步骤(创建event对象、初始化、正式触发等步骤)。不过jquery就有一个非常简单好用的click()或者trigger('click')方法来模拟点击事件

这两个方法可以说是非常简单好用了。但是这里我其实要说的是这个方法的一点问题。
    问题出现的场景是:当某个元素的点击事件需要经过判断后才触发时——也就是在点击后需要延迟一定时间的情况下,click()或者trigger()方法无法再触发click事件
    比如一个<input type="file">元素,如下图:

如果我们要在点击‘判断权限’按钮后发送一个请求到后台,并在确认权限后用click()或trigger('click')触发<input type="file">元素的click来选择文件。那么很有可能在请求返回后完全触发不了<input type="file">元素的click事件,也不能选择文件。

几次遇到这种情况,后来我用setTimeout();模拟了类似的情况。代码如下:
    setTimeout(function(){$(".fileInput").click();}, 1000);
通过运行以上js代码我发现,只要延时超过1s,click事件就触发不了。想了很久没有想通为什么,也没有研究过jquery源码(当然同样的情况可能在使用原生方法模拟click事件时也存在)。
有没有知道的同学来交流一下。
2020.12.05补充
这个问题现在基本知道答案了,应该是浏览器默认拦截或者忽略了这种类型的事件触发

关于jquery的click()和trigger(‘click‘)方法的一点问题相关推荐

  1. jquery单选框radio绑定click事件实现和是否选中的方法

    使用jquery获取radio的值,最重要的是掌握jquery选择器的使用,在一个表单中我们通常是要获取被选中的那个radio项的值,所以要加checked来筛选,比如有以下的一些radio项: 1. ...

  2. jquery 自动触发 标签的click()方法

    今天想向自动触发a标签的click事件,但是把事件绑定到a 标签上,即$("#id").click(),但是没有任何反应,然后查了下,原来不能把click事件直接绑定到a标签上,必 ...

  3. jquery 动态生成html后click事件不触发原因

    转自:http://www.iam3y.com/html/560.html 最近在做一个项目的时候,遇到动态加载微博内容,然后点击"展开评论"后获取该微博的所有评论.这里使用了动态 ...

  4. jQuery中on和trigger的使用

    考虑这样的应用场景:我们希望在点击checkbox后,其后紧跟的span标签中的文字会加粗.实现这种功能很简单,只需要在checkbox的click回调方法中完成相应的功能即可.但是如果我们希望在代码 ...

  5. js进阶课程 12-9 jquery的事件对象event的方法有哪些?

    js进阶课程 12-9 jquery的事件对象event的方法有哪些? 一.总结 一句话总结:三组六个,阻止默认事件一组,阻止冒泡一组,阻止冒泡和剩余事件一组. 1.事件的默认动作指什么? 比如点a标 ...

  6. jQuery遍历之next()、nextAll()方法使用实例

    jquery遍历:next()和nextAll()方法.实例如下: 复制代码 代码如下: <html> <head> <script type="text/ja ...

  7. html用jq设置动态效果,jQuery实现基本动画效果的方法详解

    本文实例讲述了jQuery实现基本动画效果的方法.分享给大家供大家参考,具体如下: animate()方法用于创建自定义动画 语法: $(selector).animate({params},spee ...

  8. jQuery Raty星级评分插件使用方法

    转载自  jQuery Raty星级评分插件使用方法 使用jQuery Raty,可以很方便的在页面上嵌入一个评分组件,如下所示:      使用方法很简单,首先从https://github.com ...

  9. php 动态添加表格行,jQuery给html表格动态添加行方法总结

    这次给大家带来jQuery给html表格动态添加行方法总结,jQuery给html表格动态添加行的注意事项有哪些,下面就是实战案例,一起来看一下. 本文实例讲述了jQuery实现html表格动态添加新 ...

最新文章

  1. PHP性能调优---PHP-FPM配置及使用总结
  2. php并发访问mysql_php并发对MYSQL造成压力的解决方法_PHP
  3. java timezone_Java TimeZone setID()方法与示例
  4. python元组转换成列表_python-将元组的无序列表转换为pandas DataFrame
  5. 医疗人工智能市场有多大?
  6. (8)verilog语言编写UART发送
  7. docker删除镜像、容器命令
  8. jersey子资源api使用和源码分析
  9. 应用程序无法正常启动0xc0150002怎么解决
  10. java 曲线纠缠_穿过已知点画平滑曲线(3次贝塞尔曲线)
  11. xml保存图片和读取图片(一)
  12. Windows RGBDS 及 BGB 的安装 及 HelloWorld
  13. 2021支付宝五福活动 扫码必得沾福气卡 还可获得随机福卡 集五福攻略大全
  14. mysql 计算近30天总金额_电商网站销售数据分析(MYSQL)
  15. 金海佳学C++primer 练习9.20
  16. Docker与k8s的恩怨情仇(三)—后浪Docker来势汹汹
  17. input框的一系列操作(输入框必填*号,验证单选框为必选,默认选中单选按钮,点击禁用表单输入域,输入框变为只读)
  18. echars省份地图(安徽地图地图加散点图)亮点展示
  19. Day46(列表标签,表格标签,表单标签,css的引入方式,css选择器)
  20. idea中的一些常用快捷键

热门文章

  1. OpenCORE原理和核心代码破解,增加AVI格式。
  2. 离线下载安装Microsoft Store中的应用
  3. html制作收货地址页面,css 收货地址平行四边形的线条样式示例代码
  4. IOS开发辅助小工具
  5. as算法 matlab,APAP(As Projective As Possible)视差鲁棒的图像拼接算法
  6. 虚拟 IP 设为静态 IP
  7. exoplayer2同时播放多个音频文件
  8. 使用 JavaScript 获取当前 URL?
  9. 多元时间序列分析 —— 因果检验
  10. 计算机代码,名词解释和作用,还有我们要高高飞起来喔!