Javascript和jquery事件--点击事件和触发超链接
前面的不过是一些基础的知识,真正的一些事件还是有点不同。还有一些命名空间的问题。不过现在ie也开始接受W3C标准,而且平时开发也很少考虑ie了,一些事件就不考虑ie了。
点击事件--click
大部分问题出现在js、jq触发超链接上面。我之前看到的解释是谷歌新版本阻止了触发浏览器默认的操作(超链接、右键等等),但是在下面参考的一篇文章又提出是因为要触发超链接点击的不是<a>元素,而是<a>元素里面的内容,我觉得比较靠谱,因为网上不少jq有关操作做的都是相关的改变,但是这个方法在js中无用,大致的方法有如下几种。
在Js中:
a) 无法触发超链接,只触发了给a标签绑定的’click’监听器(标准方法)
var evt = document.createEvent( 'HTMLEvents' );
evt.initEvent('click', true, true);
document.getElementById('test').dispatchEvent(evt);//无法触发超链接a
b) 给a标签里面添加了一个空的<span></span>,然后使用相同方法不可以触发
document.getElementById('test').childNodes[0].dispatchEvent(evt);//无法触发超链接a
c) 使用MouseEvent可以触发,不太清楚MouseEvents和event的区别。
var event = document.createEvent('MouseEvents');
event.initMouseEvent('click', true, false, window, 0, 0, 0, 0, 0, false, false, false, false, 0, null);
document.getElementById('test').dispatchEvent(event);//可以触发超链接a
d) 使用click()可以触发,这个我是真的不明白了,网上也还没有查到更多的解释,无论在js还是jq,好像它就理所当然地可以代替addEventListener进行监听器绑定,然而又区别于onclick,然后又理所当然地可以替代dispatchEvent()进行事件触发,而且不受是不是超链接限制。我之前用的最多的也是它,也有一些与它相似的事件,大概都出现在表单元素中,到时候再统一看看。
document.getElementById('test').click();//可以触发超链接a
在jq中:
a) 无法触发超链接,只触发了给a标签绑定的’click’监听器(标准方法)
$('#test').trigger('click');//无法触发超链接a
b) 给a标签里面添加了一个空的<span></span>,然后使用相同方法可以触发
$('#test span').trigger('click');//可以触发超链接a
c) 依旧是click()触发,不过除了js中的疑问,又多了一个疑问。由于之前所说是点击内容触发,$(‘#test’).click();不能触发,$(‘#test’)[0].click()能触发,即使#test对应的a标签没有子元素我都能理解。但是我依稀记得引发我对超链接思考的事故就发生在$a[0].click()失效啊。
我回去看了一下,下面的一段代码在http访问火狐浏览器的确是无效的,我也不知道为什么,反正就是不能用。
var $a = $("<a></a>").attr("href", 'worker.js').attr('target','_blank');
$a[0].click();//在火狐浏览器中通过http访问时无效
参考:
http://www.cnblogs.com/kevinge/p/4803786.html
https://smartblack.iteye.com/blog/608477
Javascript和jquery事件--点击事件和触发超链接的更多相关文章
- Jquery的点击事件,三句代码完成全选事件
先来看一下Js和Jquery的点击事件 举两个简单的例子 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN&q ...
- jquery绑定点击事件的三种写法
一.用jquery动态绑定点击事件的写法 部分代码: <script type="text/javascript"> $(document).ready(functio ...
- 【javascript】iOS Safari 中点击事件失效的解决办法
问题描述 当使用委托给一个元素添加click事件时,如果事件是委托到 document 或 body 上,并且委托的元素是默认不可点击的(如 div, span 等),此时 click 事件会失效. ...
- Javascript之三种按钮点击事件
学习Javascript必须要先掌握基本的事件方法和语法,这些都是我们学过的也是最基本的.以前忘了总结,所以现在回顾,综合地总结一下,温故而知新. Javascript有三种按钮点击事件,分别为ale ...
- js/jquery 禁用点击事件
前言 工作中经常遇到这种情况:验证邮箱页面的重新发送需要在3分钟后才可以点击触发请求,所以在这之前需要禁用他的点击. 网上查了后有以下几种实现方法 1.css禁用鼠标点击事件 .disabled { ...
- javascript基础1 语法 点击事件 超链接带点击事件
javascript ----------------------------------------------------------------------------------------- ...
- jquery模拟点击事件
在某些情况下,我们需要自动执行一些点击事件.比如:一些 tab 一般是通过点击事件来加载不同的数据内容. 而如果要页面加载完直接显示第三个 tab,怎么办呢?此时就需要用到 jQuery 的模拟点击事 ...
- 解决JavaScript拖动时同时触发点击事件的BUG
在做在线地图项目的时候,在给marker点绑定事件时,因为有点击事件click,同时又存在拖动dragEnd事件,首先没有重大缺陷,就是在用户在点击的时候,有时候本想是点击,但是他触发了drag的事件 ...
- JavaScript或jQuery模拟点击超链接和按钮
有时候我们需要页面自动点击超链接或者按钮,可以用js或者jQuery利用程序去点击,方法很简单,按钮或超链接代码如下: <a href="url" target=" ...
随机推荐
- C++ Primer笔记12_运算符重载_递增递减运算符_成员訪问运算符
1.递增递减运算符 C++语言并不要求递增递减运算符必须是类的成员.可是由于他们改变的正好是所操作对象的状态.所以建议设定为成员函数. 对于递增与递减运算符来说,有前置与后置两个版本号,因此.我们应该 ...
- 具体解释window.location
window.location 对象所包括的属性 hash//从井号 (#) 開始的 URL(锚) host//主机名和当前 URL 的port号 hostname//当前 URL 的主机名 href ...
- TRIZ系列-创新原理-31-多孔材料原理
多孔材料原理的详细描写叙述例如以下:1)让物体变成多孔的.或者使用辅助的多孔部件(如插入,覆盖):2)假设一个物体已经是多孔了,那么事先往里面填充某种物质:这个原理提出的原因是,一般机械系统通常都是由 ...
- 自编Photoshop简单教程
由于本科时对图形图像比較感兴趣所以Ps和Ai玩的还算能够.所以无论本科时候还是研究生阶段总是有非常多人让我帮忙处理一些图片.记得工作那一年參与一个大项目时还帮了CRI里员工处理了一些图片项目中也处理了 ...
- Unity中uGUI的控件事件穿透逻辑
1.正常来说Image和Text是会拦截点击事件的,假设加入EventTrigger的话,就能够响应相应的交互事件. 2.假设Image和Text是一个Button的子控件.那么尽管其会显示在Butt ...
- Docs-->.NET-->API reference-->System.Web.UI-->Control-->Methods-->FindControl
https://docs.microsoft.com/en-us/dotnet/api/system.web.ui.control.findcontrol?view=netframework-4.7 ...
- Linux平台下Ntop流量监测安装,并实现Netflow全过程
Linux平台下Ntop流量监测安装,并实现Netflow全过程 更多原创教学视频详见: http://you.video.sina.com.cn/m/1443650204 本文出自 "李晨 ...
- C/C++(文件操作二)
二进制读写才是本质 二进制的读写对文件标记不敏感. eg: 对图片进行加密与解密: 用命令的形式去执行: //xx.exe -c src dest 加密 //xx.exe -d src dest 解密 ...
- 洛谷 P1459 三值的排序 Sorting a Three-Valued Sequence
P1459 三值的排序 Sorting a Three-Valued Sequence 题目描述 排序是一种很频繁的计算任务.现在考虑最多只有三值的排序问题.一个实际的例子是,当我们给某项竞赛的优胜者 ...
- Codeforces Round #316 (Div. 2) A B C
A. Elections time limit per test 1 second memory limit per test 256 megabytes input standard input o ...