javascript - 检查点击的链接 href 是否不以哈希标签开头

标签 javascript jquery

这就是我如何选择所有 href 不以 # 开头的链接:

$('a:not([href^="#"])')

但是如何确定链接是否具有以井号标签开头的 href AFTER 它被单击?这失败了:

$('a').on('click', function() {
   if($(this).is('[href^="#"])')) {
     alert('No hash');
   }
});

最佳答案

您从选择器中删除了 :not()。放回去,它应该可以工作。

if($(this).is('a:not([href^="#"])')) {

演示: http://jsfiddle.net/8An48/


或者更好...

if (this.getAttribute("href").charAt(0) !== "#") {

演示: http://jsfiddle.net/8An48/1/


或者使用来自最近的祖先的事件委托(delegate),其中包含所有被定位的 a 元素。

$('body').on('click', 'a:not([href^="#"])', function() {
     alert('No hash');
});

演示: http://jsfiddle.net/8An48/2/

关于javascript - 检查点击的链接 href 是否不以哈希标签开头,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20251493/

相关文章:

javascript - 有序列表中的 2 个不同标记

javascript - 一键更改多个字形

javascript - 使用 sidebar.js/jQuery 将不透明层添加到 HTML 部分

javascript - Ext.Ajax.请求: External URL not working?

javascript - 导出没有装饰器的纯功能组件

javascript - jQuery 在 Rails 应用程序中没有反应

javascript - 将表单元素转换为 json 并将它们 POST 到服务器,其中包括其中一些作为一组参数

javascript - 使用 html5 和 jQuery 绘制按钮图

将 css 类分配给 textArea 时出现 Javascript 错误

javascript - Firefox 中的 mouseenter、mouseleave