2013-07-20 17 views
6

Dlaczego nie mogę zmienić kodu CSS znacznika a za pomocą jquery? Na przykład,jquery: usunąć kursor wskaźnika?

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> 

link 1 i 2 nie są klikalne, więc chcę, aby usunąć kursor wskaźnika.

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(); 
    } 
}); 

jest to możliwe?

jsfiddle

+0

To działa dla mnie. Co nie działa? Z jakiej przeglądarki korzystasz? – Scott

+0

Ja drugi. To działa. –

+0

@joespina Firefox pokazuje 'kursor: wskaźnik;' w skrzypcach on udostępnił :) –

Odpowiedz

11

Jeśli chcesz, możesz po prostu zrobić to z 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

Jeśli chcesz wyłączyć linki, można osiągnąć, że zbyt przy użyciu CSS pointer-events: none; Właściwość

Demo 2 (Pomoże Ci, jeśli JS jest wyłączony, to nie ostrzeże wiadomość, ale pomoże Ci wyłączyć zdarzenie, które próbujesz ing do zrobienia)

+2

nauczyłem się czegoś dzisiaj. –

+1

@joespina cieszę się, że to dzielę :) –

+1

Dzięki za odpowiedź Alien. – laukok

2

Twój błąd jest w jquery css. Musisz cytaty okrągłe css twoi js powinna wyglądać następująco:

$("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(); 
    } 
}); 

Również można użyć metody addClass następnie w css mają styl bez href

+1

Nie. Problem nie jest tutaj. Nie potrzebujesz wycen. –

+0

Czy widziałeś klasę dodawania –

+1

Klasa dodawania? –

-1

Spróbuj zmienić linia

formularz

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

do

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

dać mi znać, jeśli napotkają żadnych problemów

+0

nie, nie działa ... – laukok

Powiązane problemy