jquery:删除指针游标?

时间:2013-07-20 07:46:48

标签: jquery css preventdefault jquery-1.9

为什么我不能用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();   
    }
});

有可能吗?

jsfiddle

3 个答案:

答案 0 :(得分: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]... */

Demo

如果要禁用链接,也可以使用CSS pointer-events: none;属性

来实现

Demo 2(如果JS被禁用,它会帮助你,这不会提示信息,但它会帮助你禁用你想要做的事件)

答案 1 :(得分:2)

您的错误发生在您的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 :(得分:0)

尝试更改行

形式

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

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

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