是否可以检测链接是否已被JavaScript禁用
Is it possible to detect if a link has been disabled by JavaScript?
我熟悉在链接中添加.prventDefault()(和return false)以阻止链接继续执行,但有人知道检查链接是否设置为preventDefault(和/或return false)的方法吗?
mockJS中的示例:
$('a').not().preventDefault().click(function() {
//report that the link has been clicked
}
注意:我不知道是否/可能添加了什么脚本来阻止链接遵循其默认行为。
谢谢,Steve
一个选项是将另一个类应用于您拥有的每种类型的"链接"(转盘、选项卡、hrefs等),然后将用于跟踪的点击处理程序更改为$('linkClass').click(function() {.....});
编辑:我的观点并不是说你必须只使用一个额外的类,但也许在这里使用类作为链接的标志来跟踪它们对你来说是最好的。如果没有看到你的整个代码,我真的无法根据你的需要进行定制,所以我为你保留了它的通用性。
第二版:我只是想更好地澄清一下这个想法。
你要做的是为你的链接设置一个选择器(这个选择器可能需要观察一些不同的ID、类等才能做到这一点)。向该选择器添加一个点击事件处理程序,然后每次点击其中一个链接时,您都会以类的形式添加跟踪标志,以方便您的跟踪代码。
示例:
var $links = $(...[selector stuff]...);
$links.click(function() {
var $this = $(this);
$this.addClass("clicked");
...do clicked stuff...
$this.addClass("isActive");
...do active stuff...
$this.removeClass("isActive").addClass("visited");
...do visited stuff...
});
通过使用此技术,您还可以稍后检查并查看哪些链接已被单击,以防某些或所有跟踪方法在单击事件处理程序之外运行。
这种技术的另一个优点是在添加和删除类方面的开销很低。许多人对开销如此之少感到惊讶,因为他们一想到类就会本能地想到风格。然而,类是元素最有用的属性之一,只要不添加或删除样式,开销就会非常小(使用类作为标志也是.NET开发中非常常见的做法)。
相关文章:
- 是否可以控制获取哪些Google地图脚本(JavaScript API)
- 用于检查数组中是否存在元素的javascript自定义方法
- 是否可以在浏览器中使用纯JavaScript保存音频流
- 是否可以使用JavaScript/AAJAX在客户端创建一个文件
- 我是否可以检测到javascript正在被卸载(作为调试模式)
- PhantomJS - 检查javascript函数是否正在运行的任何方法
- 是否有任何JavaScript UI组件可以显示字符串之间的差异
- javascript跨浏览器确定用户是否滚动到页面底部
- 是否可以用JavaScript显示等效的文件夹对话框
- 检查是否存在使用chrome扩展的javascript库
- 如何知道javascript for语句中的所有结果是否都是错误的
- 是否存在Javascript Liferay Service库的文档?如何处理错误情况
- 是否可以使用jquery或javascript将自动增量类添加到列表中
- javascript移动交叉浏览器确定用户是否滚动到页面底部
- 有没有一种方法可以从Javascript检测特定的应用程序是否安装在(AndroidiOS)设备上
- javascript数组元素是否知道其封闭数组
- 是否“;对于的“;循环迭代遵循JavaScript中的数组顺序
- 是否有任何设置阻止JavaScript在系统上工作
- 是否可以在javascript中读取IE中的本地文件
- 是否有任何Javascript函数从指定的索引中进行正则表达式匹配