2012-01-10 15 views
157

mam to a i nie wiem, że muszę wstawić do „onmouseover” tak, że kursor zmieni się wskaźnik palca jak zwykły link:zmiana kursora do wskaźnika palca

<a class="menu_links" onclick="displayData(11,1,0,'A')" onmouseover=""> A </a> 

I przeczytaj gdzieś, co muszę umieścić:

onmouseover="cursor: hand (a pointing hand)" 

Ale to nie działa dla mnie.

Plus Nie jestem pewien, czy jest to uważane za JavaScript, CSS, czy po prostu HTML.

+0

to css, a zdarzenie onmouseover jest zdarzeniem javascript. – Scott

+0

Nie umieszczaj css bezpośrednio w onmouseover = "". Ponadto kursor: ręka, podczas gdy zawisanie nad linkiem powinno być domyślną akcją. Jeśli tak się nie stanie, może być inny problem. – Tank

+1

możliwy duplikat [jak ustawić styl kursora na wskaźnik dla linków bez hrefów] (http://stackoverflow.com/questions/2409836/how-to-set-cursor-style-to-pointer-for-links-without- hrefs) –

Odpowiedz

331
<a class="menu_links" onclick="displayData(11,1,0,'A')" onmouseover="" style="cursor: pointer;"> A </a> 

To css.

Albo w arkuszu stylów:

a.menu_links { cursor: pointer; } 
+4

dziękuję bardzo –

+1

tylko małą literówkę - 'kursor: wskaźnik;'. Próbowałem edytować wpis, ale poprosiłem o zmodyfikowanie co najmniej 6 znaków. Poza tym, dziękuję! –

+2

Po przetestowaniu tego, wydaje się, że konieczne jest posiadanie zarówno onmouseover = "" AND style = cursor: pointer; ".Jeśli masz już etykietę stylu, kursor wskaźnika zniknie/domyślny do standardowego wskaźnika po interakcji jednym kliknięciem. Dobry post Scott, dziękuję. – DnfD

37

Można to zrobić w CSS:

a.menu_links { 
    cursor: pointer; 
} 

To jest rzeczywiście domyślne zachowanie dla łącza. Musiałeś jakoś przesłonić to gdzie indziej w swoim CSS, lub nie ma tam atrybutu href (brakuje go w twoim przykładzie).

+0

Nie mam href coz Nie chcę opuszczać strony. jest to łącze, które uruchamia funkcję JS, a jeśli wstawię href = "#", to niechciane i ładuje niepoprawną stronę –

+2

@DvirLevy - Więc albo zwróć false i użyj 'href =" # "', albo po prostu użyj CSS jak pokazałem ci ... –

3

Dodaj atrybut href, aby był poprawnym łączem & return false; w procedurze obsługi zdarzeń, aby zapobiec spowodowaniu nawigacji;

<a href="#" class="menu_links" onclick="displayData(11,1,0,'A'); return false;" onmouseover=""> A </a> 

(lub dokonać displayData() return false i ..="return displayData(..)

8

w CSS zapisu

a.menu_links:hover{ cursor:pointer} 
17

Lubię za pomocą tego jednego, jeśli mam tylko jeden link na stronie:

onMouseOver="this.style.cursor='pointer'" 
7

Tutaj jest coś fajnego, jeśli chcesz z tym zrobić jeszcze więcej. w adresie URL możesz użyć linku lub zapisać obraz i użyć ścieżki. na przykład:

adres URL ("assets/imgs/theGoods.png");

poniżej kod:

.cursor{ 
    cursor:url(http://www.icon100.com/up/3772/128/425-hand-pointer.png), auto; 
} 

Więc to będzie działać tylko na podstawie wielkości 128 x 128, każde większe i przyzwyczajenie zdjęciu obciążenia. Ale możesz praktycznie użyć dowolnego obrazu, który chcesz! Będzie to dotyczyć czystego css3 i trochę html. wszystko co musisz zrobić w html to

<div class='cursor'></div> 

i tylko w tym dziale, ten kursor pokaże. Dlatego zazwyczaj dodaję go do tagu body.

4

Uważam, że powyższa "najlepsza odpowiedź", choć programowo dokładna, nie odpowiada na postawione pytanie. pytanie pyta, jak zmienić wskaźnik w przypadku mouseover. Widzę posty na temat tego, jak ktoś może mieć gdzieś błąd, nie odpowiada na pytanie. W zaakceptowanej odpowiedzi zdarzenie mouseover jest puste (onmouseover=""), a opcja stylu jest uwzględniona. Baffling, dlaczego to się stało.

Może być coś złego z linkiem osoby pytającej. rozważyć następujący kod HTML:

<a id=test_link onclick="alert('kinda neat);">Click ME!</a> 

Gdy użytkownik mysz skończona ten link, wskaźnik nie zmieni się w ręce ... zamiast, wskaźnik będzie się zachowywał jak to unoszące się nad zwykłym tekście. Ktoś może tego nie chcieć ... i dlatego trzeba zmienić wskaźnik myszy.

odpowiedź jest poszukiwane jest ten (który został napisany przez innego):

<a id=test_link onclick="alert('Nice!');" 
     onmouseover="this.style.cursor='pointer';">Click ME!</a> 

Jest to jednak ... koszmar, jeśli masz dużo z nich, lub korzystać z tego typu rzeczy na całym miejsce i zdecyduj się na jakąś zmianę lub wpadnij na błąd. lepiej zrobić klasę CSS dla niego:

a.lendhand { 
    cursor: pointer; 
} 

następnie:

<a class=lendhand onclick="alert('hand is lent!');">Click ME!</a> 

istnieje wiele innych sposobów, które byłoby zapewne lepiej niż tej metody. DIV s, PRZYCISKI s, IMG s itp. Mogą okazać się bardziej przydatne. Nie widzę żadnej szkody w korzystaniu z <a>...</a>.

jarett.

1

Rozwiązanie za pomocą czystego CSS , jak wspomniano w odpowiedzi oznaczonej jako najlepsza , nie nadaje się do tej sytuacji.

Przykład w tym temacie nie ma normalnego atrybutu static href, to wywołanie JS, więc nie zrobi niczego bez JS.

Dobrze jest włączyć wskaźnik za pomocą JS. Więc rozwiązanie

onMouseOver="this.style.cursor='pointer'" 

jak wspomniano powyżej (ale nie mogę nie skomentować) jest jednym z najlepszych w tej sprawie. (Ale tak, ogólnie, w przypadku normalnych linków niewymagających JS lepiej jest pracować z czystym CSS bez JS.)

Powiązane problemy