检查点击href是否有哈希值,不做其他任何事情去链接

时间:2013-12-23 14:49:56

标签: jquery

jQuery('body').on('click', '.Home_Offer a', function(e){
    jQuery('a[href*="#"]').each(function(e){
        e.preventDefault();
     });
});

我有上面的代码,但它在Console.Log

中返回
  

未捕获TypeError:对象0没有方法'preventDefault'

我试图阻止散列链接在单击链接时被点击。某些链接的值为#,但有#时,它无需执行任何操作

2 个答案:

答案 0 :(得分:10)

如果需要测试点击的锚元素(this

jQuery('body').on('click', '.Home_Offer a', function (e) {
    if (/#/.test(this.href)) {
    //if ($(this).is('[href*="#"]')) {
        e.preventDefault();
    }
});

each()回调接收索引和项作为参数,因此单击处理程序中的e是一个int值,它没有preventDefault方法

答案 1 :(得分:0)

您可以尝试将onclick="return false"包含在链接本身中,而不是尝试单独的功能。

或者,如果您使用jQuery触发未链接到其他位置的页面的可点击部分,您可以使用css选择器来定位所需的div以触发onClick您想要发生的任何事情如果您正在尝试维护该UI,请将光标更改为带有可点击div的css的指针。

一般情况下,我喜欢使用#进行测试,但它不一定适合搜索引擎优化或机器人