jquery:删除指针光标?

问题描述 投票:0回答:3

为什么我无法使用 jquery 更改

a
标签的 CSS?例如,

html,

<a href="#">1</a>
<a href="">2</a>
<a href="http://website.com/#/home/about/">3</a>
<a href="http://website.com/home/about/">4</a>

链接 1 和 2 不可点击,所以我想删除指针光标。

jquery,

$("a").click(function(e){
    if($(this).attr("href") == "#" || $(this).attr("href") == "") {
        alert("this is non-clickable");
        $(this).css({cursor:"default"});
        e.preventDefault();   
    }
    else{
        alert($(this).attr("href"));
        $(this).css({cursor:"pointer"});
        e.preventDefault();   
    }
});

可能吗?

jquery css preventdefault jquery-1.9
3个回答
11
投票

如果你愿意,你可以简单地使用 CSS 来做到这一点

a[href="\#"], a[href=""] {
    cursor: default;
}
/* I've used an element[attr] selector here which will select all a tags 
   with this combination, if you want to target specific a tags, 
   wrap them in an element with a class and you can than refer as 
   .class a[href]... */

演示

如果您想禁用链接,也可以使用 CSS

pointer-events: none;
属性来实现

演示2(如果JS被禁用,这将帮助你,这不会提醒消息,但它会帮助你禁用你正在尝试做的事件)


3
投票

您的错误出在您的 jquery css 中。你需要在 css 周围加上引号,你的 js 应该如下所示:

$("a").click(function(e){
    if($(this).attr("href") == "#" || $(this).attr("href") == "") {
        alert("this is non-clickable");
        $(this).css({'cursor' :"default"});
        e.preventDefault();   
    }
    else{
        alert($(this).attr("href"));
        $(this).css({'cursor':"pointer"});
        e.preventDefault();   
    }
});

您也可以使用 addClass 方法,然后在 css 中设置无 href 的样式


2
投票

尝试换线

来自

$(this).css({cursor:"default"});

$(this).css('cursor','default');

如果您遇到任何问题,请告诉我

© www.soinside.com 2019 - 2024. All rights reserved.