6

ajquery でタグの 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

4

3 に答える 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]... */

デモ

リンクを無効にしたい場合は、CSSpointer-events: none;プロパティを使用してそれを実現することもできます

デモ 2 (JS が無効になっている場合に役立ちます。これはメッセージを警告しませんが、実行しようとしているイベントを無効にするのに役立ちます)

于 2013-07-20T07:52:39.470 に答える
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 なしのスタイルを設定することもできます

于 2013-07-20T07:51:49.620 に答える
1

ラインを変えてみる

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

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

問題が発生した場合はお知らせください

于 2013-07-20T07:52:36.987 に答える