วิธีตั้งค่ารูปแบบเคอร์เซอร์เป็นตัวชี้สำหรับลิงก์ที่ไม่มี hrefs


136

ฉันมี<a>แท็ก html จำนวนมากที่ไม่มีhrefแอตทริบิวต์สำหรับการonclickเรียกใช้จาวาสคริปต์ ลิงก์เหล่านี้ไม่มีรูปแบบตัวชี้ของเคอร์เซอร์ มีเคอร์เซอร์รูปแบบข้อความ

ฉันจะตั้งค่ารูปแบบเคอร์เซอร์เป็นตัวชี้สำหรับลิงก์โดยไม่ใช้hrefแอตทริบิวต์ได้อย่างไร

ฉันรู้ว่าฉันสามารถเพิ่ม href = "#" ได้ ฉันมีสิ่งนี้ในหลาย ๆ ที่ในเอกสาร html และต้องการทราบวิธีสร้างตัวชี้รูปแบบเคอร์เซอร์สำหรับลิงก์โดยไม่ต้องใช้hrefแอตทริบิวต์


ยังไงก็ตามเมื่อคุณพูดว่าลิงก์คุณหมายถึง "<a id="do_some_javascript"> ทดสอบ </a>" หรือไม่ หรือเป็นเพียงแท็กช่วงหรือ div ที่ใช้จาวาสคริปต์?
Alxandr

คำตอบ:


213

ในไฟล์ css ของคุณเพิ่มสิ่งนี้ ....

a:hover {
 cursor:pointer;
}

หากคุณไม่มีไฟล์ css ให้เพิ่มไฟล์นี้ที่ HEAD ของหน้า HTML ของคุณ

<style type="text/css">
 a:hover {
  cursor:pointer;
 }
</style>

นอกจากนี้คุณสามารถใช้แอตทริบิวต์ href = "" โดยส่งคืนเท็จที่ส่วนท้ายของจาวาสคริปต์ของคุณ

<a href="" onclick="doSomething(); return false;">a link</a>

นี่เป็นสิ่งที่ดีสำหรับหลาย ๆ เหตุผล SEO หรือถ้าใครไม่มี javascript href = "" ก็ใช้ได้ เช่น

<a href="nojavascriptpage.html" onclick="doSomething(); return false;">a link</a>

@ ดู http://www.alistapart.com/articles/behavioralseparation

แก้ไข: น่าสังเกตคำตอบของ @ BalusC ที่เขากล่าวว่า:hoverไม่จำเป็นสำหรับกรณีการใช้งานของ OP แม้ว่าสไตล์อื่น ๆ สามารถเพิ่มได้ด้วย:hoverตัวเลือก


5
การใช้: ไม่จำเป็นต้องวางเมาส์เหนือและไม่รับประกันว่าจะทำงานกับลิงก์ที่ไม่มี href
Alxandr

ฉันนึกไม่ออกว่ามันจะไม่ได้ผลที่ไหน นี่เป็นวิธีที่ดีในการเรียนรู้คุณอาจต้องการมีพฤติกรรมอื่น ๆ ที่คล้ายกับลิงก์ที่มีแอตทริบิวต์ href: การเปลี่ยนแปลงพื้นหลังขีดเส้นใต้สีและอื่น ๆ
รอส

1
เป็นเวลานานแล้วที่ฉันใช้สิ่งนี้ แต่สำหรับ <IE6 มันอาจจะคุ้มค่าที่จะเพิ่มความคิดเห็นแบบมีเงื่อนไขเพื่อเชื่อมโยงไปยังสไตล์ที่นำเสนอcursor: hand;
David กล่าวว่าคืนสถานะ Monica

คุณไม่จำเป็นต้องแสดงความคิดเห็นแบบมีเงื่อนไข - เพียงแค่ทำ. myStyle {cursor: hand; cursor: pointer;} - เบราว์เซอร์รุ่นใหม่จะไม่สนใจแอตทริบิวต์ hand เนื่องจากพวกเขาไม่เข้าใจอยู่ดี นอกจากนี้ IE6 จะยังคงเข้าใจตัวชี้ - มือสำหรับ IE5 และต่ำกว่า
easwee

การใช้ a ในตัวเองอาจทำให้เกิดปัญหาได้ โดยเฉพาะอย่างยิ่งใน IE เพราะพวกเขาทริกเกอร์ OnBeforeUnload แม้ว่าคุณจะเพิ่ม return false แม้แต่ลิงค์ไปยัง javascript: void (0); ทำให้ OnBeforeUnload ถูกเรียก ฉันปวดหัวกับปัญหานี้ในที่ทำงาน ...
Alxandr

16

เพียงเพิ่มสิ่งนี้ในสไตล์ CSS ส่วนกลางของคุณ:

a { cursor: pointer; }

วิธีนี้จะทำให้คุณไม่ต้องพึ่งพารูปแบบเคอร์เซอร์เริ่มต้นของเบราว์เซอร์อีกต่อไป


ไม่ทำงาน เคอร์เซอร์จะเปลี่ยนเป็นtextแทนpointerใน Chrome
ZhekaKozlov


6

นี่คือวิธีการเปลี่ยนเคอร์เซอร์จากลูกศรเป็นมือเมื่อคุณวางเมาส์เหนือสิ่งที่กำหนดobject(myObject)

myObject.style.cursor = 'pointer';

1
ก่อนอื่นขอต้อนรับสู่ SO, Lou! เมื่อโพสต์ / ตอบโปรดตรวจสอบให้แน่ใจว่าได้ให้ข้อมูลมากที่สุดเท่าที่จะเป็นไปได้และอย่าลืมจัดรูปแบบตัวอย่างโค้ดของคุณ (ตามที่ฉันได้ทำเพื่อคุณ)
Brian

4

ใช้ CSS นะcursor: pointerถ้าจำไม่ผิด

ในไฟล์ CSS ของคุณ:

.link_cursor
{
    cursor: pointer;
}

จากนั้นเพิ่ม HTML ต่อไปนี้ให้กับองค์ประกอบใด ๆ ที่คุณต้องการให้มีเคอร์เซอร์ลิงก์: class="link_cursor"(วิธีที่ต้องการ)

หรือใช้ CSS แบบอินไลน์:

<a style="cursor: pointer;">

4

ให้คลาสทั่วไป (เช่นลิงค์อินสแตนซ์) จากนั้นเพิ่มในไฟล์ css:

.link { cursor: pointer; }

หรือตามที่ @mxmissile แนะนำให้ทำแบบอินไลน์ด้วย style = "cursor: pointer;"


4

สร้างคลาสด้วย CSS ต่อไปนี้และเพิ่มลงในแท็กของคุณด้วยเหตุการณ์ onclick:

cursor:pointer;


โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.