thay đổi con trỏ thành con trỏ ngón tay


234

Tôi có cái này avà tôi không biết rằng tôi cần phải chèn vào "onmouseover" để con trỏ sẽ thay đổi thành con trỏ ngón tay như một liên kết thông thường:

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

Tôi đọc ở đâu đó mà tôi cần đặt:

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

Nhưng nó không làm việc cho tôi.

Ngoài ra, tôi không chắc đây có được coi là JavaScript, CSS hay chỉ là HTML đơn thuần.


đó là css và sự kiện onmouseover là một sự kiện javascript.
Scott

Bạn không đặt css trực tiếp vào onmouseover = "". Ngoài ra, con trỏ: tay trong khi di chuột qua liên kết của bạn sẽ là hành động mặc định. Nếu điều này không xảy ra, có thể có một vấn đề khác trong tay.
Xe tăng



3
lol "Tay ..... một bàn tay chỉ!" haha xin lỗi, tôi không thể cưỡng lại
Christine

Câu trả lời:


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

Đó là css.

Hoặc trong một biểu định kiểu:

a.menu_links { cursor: pointer; }

2
Sau khi kiểm tra điều này, có vẻ như cần phải có cả onmouseover = "" AND style = con trỏ: con trỏ; ". Nếu bạn chỉ có thẻ kiểu, con trỏ con trỏ sẽ biến mất / mặc định cho con trỏ chuẩn sau một lần nhấp tương tác. Scott tốt, cảm ơn bạn.
Nubtacular

1
@DnfD bạn chỉ cần onmouseovernếu không có href định nghĩa. Nếu, như một neo tiêu chuẩn, có một hrefđịnh nghĩa, onmouseoverlà không cần thiết.
Scott

@DnfD câu trả lời được chấp nhận là loại khủng khiếp, thực sự. nó thực hiện công việc, nhưng không rõ ràng. loại bỏ mouseover=""style="cursor: pointer;"để lại class="menu_links" nó sẽ làm việc! bất kể có hrefở trong đó hay không.
Jarett Lloyd

@Scott không, bạn không cần những mouseoversự kiện trong đó. xem bình luận trước đây của tôi cho DnfD
Jarett Lloyd

@JarettLloyd phụ thuộc nhiều vào hỗ trợ trình duyệt và xây dựng CSS. Đây là một câu trả lời năm 2012 . Mọi thứ đã thay đổi trong hơn 6 năm.
Scott

52

Bạn có thể làm điều này trong CSS:

a.menu_links {
    cursor: pointer;
}

Đây thực sự là hành vi mặc định cho các liên kết. Bạn phải bằng cách nào đó đã ghi đè nó ở nơi khác trong CSS của bạn hoặc không có hrefthuộc tính nào trong đó (nó thiếu trong ví dụ của bạn).


Tôi không có a href vì tôi không muốn rời khỏi trang. đó là một liên kết kích hoạt chức năng JS và nếu tôi chèn href = "#" thì nó làm rối nó và nó tải lại trang sai
Dvir Levy

2
@DvirLevy - Vì vậy, hãy trả về false và sử dụng href="#"hoặc chỉ sử dụng CSS như tôi đã chỉ cho bạn ...
Joseph Silber

22

Tôi thích sử dụng liên kết này nếu tôi chỉ có một liên kết trên trang:

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


7

Đây là một cái gì đó tuyệt vời nếu bạn muốn đi thêm một dặm với điều này. trong url, bạn có thể sử dụng một liên kết hoặc lưu png hình ảnh và sử dụng đường dẫn. ví dụ:

url ('tài sản / imss / theoods.png');

bên dưới là mã:

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

Vì vậy, điều này sẽ chỉ hoạt động dưới kích thước 128 X 128, bất kỳ lớn hơn và hình ảnh sẽ không tải. Nhưng thực tế bạn có thể sử dụng bất kỳ hình ảnh nào bạn muốn! Điều này sẽ được xem xét css3 thuần túy và một số html. tất cả những gì bạn phải làm trong html là

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

và chỉ trong div đó, con trỏ đó sẽ hiển thị. Vì vậy, tôi thường thêm nó vào thẻ cơ thể.


6

Tôi nghĩ rằng "câu trả lời tốt nhất" ở trên, mặc dù chính xác về mặt lập trình, không thực sự trả lời câu hỏi được đặt ra. câu hỏi hỏi làm thế nào để thay đổi con trỏ trong sự kiện di chuột. Tôi thấy các bài đăng về cách một người có thể có lỗi ở đâu đó không trả lời câu hỏi. Trong câu trả lời được chấp nhận, sự kiện di chuột là trống ( onmouseover="") và thay vào đó, tùy chọn kiểu được đưa vào. Caffein tại sao điều này đã được thực hiện.

Có thể không có gì sai với liên kết của người hỏi. xem xét các html sau:

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

Khi chuột của người dùng qua liên kết này, con trỏ sẽ không thay đổi thành tay ... thay vào đó, con trỏ sẽ hoạt động giống như nó di chuột qua văn bản bình thường. Người ta có thể không muốn điều này ... và vì vậy, con trỏ chuột cần được yêu cầu thay đổi.

câu trả lời đang được tìm kiếm là cái này (được đăng bởi người khác):

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

Tuy nhiên, đây là ... một cơn ác mộng nếu bạn có nhiều trong số này, hoặc sử dụng loại điều này ở khắp mọi nơi và quyết định thực hiện một số thay đổi hoặc gặp lỗi. tốt hơn để tạo một lớp CSS cho nó:

a.lendhand {
  cursor: pointer;
}

sau đó:

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

có nhiều cách khác sẽ được cho là tốt hơn phương pháp này. DIV s, BUTTON s, IMG s, vv có thể hữu ích hơn. Tôi thấy không có hại trong việc sử dụng <a>...</a>, mặc dù.

bình


4

Thêm một hrefthuộc tính để làm cho nó trở thành một liên kết hợp lệ & return false;trong trình xử lý sự kiện để ngăn chặn nó gây ra điều hướng;

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

(Hoặc displayData()trả lại sai và ..="return displayData(..)


3

Giải pháp thông qua CSS thuần như được đề cập trong câu trả lời được đánh dấu là tốt nhất không phù hợp với tình huống này.

Ví dụ trong chủ đề này không có thuộc tính static href thông thường, nó chỉ gọi là JS, vì vậy nó sẽ không làm gì nếu không có JS.

Vì vậy, thật tốt khi chỉ bật con trỏ với JS. Vì vậy, giải pháp

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

như đã đề cập ở trên (nhưng tôi không thể bình luận ở đó) là cái tốt nhất trong trường hợp này. (Nhưng vâng, thông thường, đối với các liên kết thông thường không yêu cầu JS, tốt hơn là làm việc với CSS thuần mà không cần JS.)


Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.