javascript - jQuery:将 onClick 绑定(bind)到指向其他页面的所有 anchor ,其中 target=_self

标签 javascript jquery html

每当用户单击不在新窗口中打开并且具有的任何a时,我想调用我的自定义函数(或简单地执行某些逻辑) href 属性非空不以#开头且没有javascript:

基本上我需要所有这些链接,如果单击这些链接将导致当前页面被卸载。但所有其他链接,例如 #point1javascript:alert(''); 等均应排除(因为如果单击,用户仍将保留在页面上)。正确的 jQuery 是什么?

理想情况下应该与旧版 jQuery - 版本 1.7.2 兼容

最佳答案

试试这个:

$(document).on('click', 'a[href][href!=""]:not([href^="#"],[href^="javascript:"],[target="_blank"])', function() {
    // do something
})

但是,您必须考虑到它不是一个易于维护的可读代码。传递过滤函数(如 @Rory McCrossan 答案)可以更具可读性。

参见Fiddle

P.S 您是否考虑过使用 beforeunload事件代替?

关于javascript - jQuery:将 onClick 绑定(bind)到指向其他页面的所有 anchor ,其中 target=_self,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33420359/

相关文章:

javascript - 替换表单提交页面上的文本

JavaScript/HTML - 新的音频 JavaScript 在 IE 8 及以下版本中失败?

javascript - 在关闭浏览器选项卡之前执行保存

jquery - 如果 jqgrid 中没有数据,我的 Jqgrid 寻呼机显示 1 of 0

html - htm音频无法在手机上播放

javascript - 计算 Web 表单上 2 个输入字段的总时间

javascript - 使用脚本添加两个同名的数组值

Javascript - 更改月份的第一天

jquery - ajax 发布并返回 html 以在 div 中显示

javascript - 如何更改 DOM 元素?