2009-12-02 17 views
37

कोई लिंक बनाना संभव है जो कुछ भी नहीं करता है। मैं आइटम को एक लिंक होना चाहता हूं इसलिए मुझे कर्सर को माउसओवर पर बदलने के लिए मिलता है, लेकिन मैं नहीं चाहता कि लिंक वास्तव में कहीं भी जाए क्योंकि यह वास्तव में एक ही पृष्ठ पर अतिरिक्त कार्यक्षमता वाले एक div को दिखाता है।मैं एक लिंक कैसे बना सकता हूं जहां

उत्तर

80

ब्राउज़र इतिहास में जोड़ देगा:

<a href="#"></a>

ब्राउज़र इतिहास (पसंदीदा विधि) के लिए जोड़ नहीं किया जाएगा:

<a href="javascript:;"></a>

+10

यह ठीक है, भले ही वे जावास्क्रिप्ट बंद कर दिया है? – pingu

+3

हां, यह कुछ भी नहीं करेगा। –

+1

बस एक नोट के रूप में, यदि आपके पास ऑनक्लिक फ़ंक्शन सेट है तो उत्तरार्द्ध समस्याएं उत्पन्न करता है। – Shule

1

एक विकल्प # करने के लिए बात करने के लिए किया जाएगा कुछ - यह उस तत्व को लंबवत स्क्रॉल ले जाएगा, लेकिन यह हो सकता है कि आप क्या चाहते हैं या नहीं।

Ps। आप शैलियों के साथ एक ही परिणाम प्राप्त कर सकते हैं।

15

बजाय, आप एक <span> का उपयोग करें और कर्सर शैली सेट कर सकते हैं:

<span id="node42" class="node-link">My Text</span> 

और अपने स्टाइलशीट में कर्सर निर्दिष्ट करें:

.node-link { cursor: pointer; } 

यह भी आप के लिए नोड के लिए संलग्न करने के लिए अनुमति होगी बाद में आपके कार्य (Prototype का उपयोग करके यहां दिखाएं):

<script type="text/javascript"> 
    $('node42').observe('click', function(event) { 
     alert('my click handler'); 
    }); 
</script> 
+3

कक्षा के बजाय आईडी क्यों? –

+0

@Roger: 'id' का उपयोग करके तत्व को विशिष्ट रूप से पहचाना जा सकता है, जो इस मामले में जावास्क्रिप्ट उदाहरण के लिए अधिक उपयोगी है। आपके पास कर्सर के लिए एक अच्छा बिंदु है। यह शायद क्लास-आधारित शैली का अधिक है। मैंने अपना जवाब अपडेट कर लिया है। धन्यवाद! – jheddings

+1

यह हाइपर-लिंक की स्टाइल आयात नहीं करेगा (जैसे हाइपरलिंक रंग, टेक्स्ट-सजावट ... आदि)। इस प्रकार शक्ति 1 का उत्तर बेहतर है। – Pratyush

2

यदि आप जुस शैली चाहते हैं, सीएसएस cursor property पॉइंटर पर सेट करें।

लेकिन ऐसा लगता है कि आप <a href="javascript:void(do_something())"> चाहते हैं।

6

बस तत्व के लिए शैली cursor:pointer जोड़ें:

<a id="clickme">Click Me</a> 

सीएसएस:

#clickme { cursor: pointer } 

या (स्वर्ग ना करे) में लाइन:

<a style="cursor:pointer">Click Me</a> 
+1

आपको href = "#" का उपयोग करना होगा। Click Me समस्या पैदा करेगा। –

+0

@ उमेश, क्या समस्या है? केवल "समस्या" यह है कि होवर शैलियों आईई 6 में काम नहीं करेगा और 'कर्सर: पॉइंटर' स्वचालित रूप से लागू नहीं होगा। कृपया समझाएँ। –

13
मेरी राय में

, सबसे पूरा हैक मुक्त समाधान:

<a href="" onclick="return false;">do absolutely nothing</a> 
+1

यह समाधान मेरे लिए सबसे अच्छा काम करता प्रतीत होता है, अब तक, क्योंकि मैं 'ऑनक्लिक' में एक जावास्क्रिप्ट फ़ंक्शन का उपयोग करना चाहता हूं (मैं इसके बाद झूठी वापसी करता हूं): उदा। 'my text' – Shule

1

मैं सरल कुछ के लिए देख रहा था, और मैं मुझे मिल गया लगता है। क्या आप चाहते हैं कि आपका लिंक कहीं न जाए? href छोड़ दें।

<a class='irrelevant_for_this_example'>Some text</a>

href="#" पृष्ठ के शीर्ष पर स्क्रॉल करेगा।

href="javascript:;" डोडी लगता है।

एक जेएस समाधान कुछ आसान के लिए अनावश्यक लगता है।

+2

असल में, मुझे लगता है कि ओपी शायद जावास्क्रिप्ट में एक ढहने योग्य/विस्तार योग्य बॉक्स को ट्रिगर करने के लिए लिंक का उपयोग कर रहा था। मैं 'href =" जावास्क्रिप्ट की पुष्टि कर सकता हूं:; "इसके लिए काम करता है। 'Href' को हटाने का अर्थ है कि ब्राउज़र इसे सामान्य लिंक के रूप में नहीं मानता है, यानी, जब आप लिंक पर होवर करते हैं तो माउस उंगली में नहीं बदलता है। – binaryfunt

+0

यह कहकर, 'href =" # शून्य "', या ऐसा कुछ, काम करता है, और बेहतर हो सकता है – binaryfunt

1

यहाँ 2 क्लासिक जावास्क्रिप्ट दृष्टिकोण है कि -सांत्वना जे एस अपने में एक त्रुटि आप नहीं देंगे कर रहे हैं और/या यूआरएल में परिवर्तन नहीं करते और न ही अपने ब्राउज़र इतिहास में सहेज लें:

<a href="javascript:void(0);">Click on this javaScript error-free link that won't change your URL nor save it into your browser history</a><hr /> 
 
<a href="#void">Maybe a more readable approach, but unfortunately this one changes your URL</a>

संबंधित मुद्दे