2011-06-27 23 views
6

मैं एक MySQL/PHP क्वेरी से एंकर टैग की एक सूची बना रहा हूं; एंकर टैग एक जावास्क्रिप्ट फ़ंक्शन कॉल करते हैं।एंकर टैग सूची निर्माण

'पकड़ 22' मेरे पास है वह यह है कि:

  • href = "#" पृष्ठ कूद शीर्ष करने के लिए हर बार एंकर टैग में से एक क्लिक किया जाता है (बहुत कष्टप्रद)
  • href को दूर करने में आता है = "#" का अर्थ है कि कर्सर एक एंकर टैग के रूप में परिवर्तित नहीं होता है और न ही एंकर टैग में एंकर टैग का एपारेंस होता है।

मुझे पता है कि जावास्क्रिप्ट (संभवतः jQuery) के साथ इसे संभालने का एक तरीका है लेकिन मुझे इस समय कैसे याद नहीं है। हालांकि, मैं वास्तव में सरल HTML फिक्स (यदि कोई मौजूद है) पसंद करता है तो मुझे जावास्क्रिप्ट में जाने की आवश्यकता नहीं होती है।

संपादित करें: "मुझे करने के लिए जावास्क्रिप्ट में मिल की आवश्यकता नहीं है" == "जावास्क्रिप्ट में व्यापक परिवर्तन की आवश्यकता नहीं है।"

उत्तर

2

आप के लिए एक सरल एचटीएमएल फिक्स: निजी तौर पर बोल रहा है, सादे परीक्षण लिंक के लिए मैं बस का उपयोग href=""

लिंक है कि एक जावास्क्रिप्ट समारोह मैं href="javascript:;" का उपयोग करते हैं को इंगित करने के लिए। किसी भी तरह से आप पेज कूदना बंद कर देंगे।

+1

धन्यवाद स्कॉट। यह मेरे लिए काम किया। –

+0

वाह, यह शायद मुझे मिली सबसे उपयोगी टिड बिट्स में से एक है, +1। –

+0

चीयर्स! सरल लेकिन प्रभावी :-) –

4

अपने जावास्क्रिप्ट समारोह में आप return false चाहिए, या jQuery के साथ उपयोग कर सकते हैं preventDefault()

उदाहरण:

$('a').click(function(event) { 
    event.preventDefault(); 
    // do something 
}); 

या आपके मामले में:

<a href=“#” onclick="foo();return false;"> 

या javascript:void(0) को href बदलने :

<a href="javascript:void(0)" onclick="foo();"> 

आदर्श रूप से, आपका लिंक जावास्क्रिप्ट के बिना घटता है, इसलिए तीसरा विकल्प आमतौर पर टाला जाएगा।

1

ऑनक्लिक या foo() फ़ंक्शन के भीतर झूठी वापसी करें।

1

आपको अपने क्लिक इवेंट हैंडलर में कहीं भी event.preventDefault(); पर कॉल करने की आवश्यकता है। वेनिला जावास्क्रिप्ट में, यह इतना की तरह किया जा सकता है:

<script type="text/javascript"> 
    function foo(e) { 
    e.preventDefault(); 
    // other code 
    } 
</script> 
<a href="#" onclick="foo(e);"></a> 

साथ ही, आपको भी झूठे लौट सकते हैं:

<a href="#" onclick="foo();return false;/> 

यह भी सुंदर बस jQuery में किया जा सकता:

$('.mylink').click(function(e) { 
    e.preventDefault(); 
    // other code 
}); 

return false; का उपयोग करने का नकारात्मक पक्ष यह है कि घटना को डीओएम को बुलबुला करने से रोकता है। यदि आपको घटना के बारे में कोई परवाह नहीं है तो झूठी बात करना ठीक है, लेकिन व्यक्तिगत रूप से मुझे लगता है कि event.preventDefault(); का उपयोग करना बेहतर नहीं है जबतक कि आप विशेष रूप से ईवेंट बुलबुले को भी रोकना नहीं चाहते हैं।

+0

हे, मुझे यह भी नहीं पता था कि 'रोकथाम() 'वेनिला जावास्क्रिप्ट था - यह दिखाता है कि मैं अपने क्रच के रूप में jQuery के साथ कितना लम्बा रहा हूं! +1 अच्छा स्पष्टीकरण। –

+0

jQuery अपने स्वयं के ईवेंट ऑब्जेक्ट को पास करता है, लेकिन यह केवल ब्राउज़रों में सामान्यीकरण के साथ मदद करने के लिए है। – scurker

0
<html> 
    <head> 

    </head> 
    <body> 
    <style> 
    a { 
     text-decoration: underline; 
    } 
    a:hover { 
     text-decoration: underline; 
    } 
    </style> 
    <script type="text/javascript"> 
     function foo() { 
     alert('Hello World'); 
     } 
    </script> 
    <a onclick="foo();">Click Here</a> 
    </body> 
    </html> 

बस सीएसएस जोड़ना और href को हटा देना ठीक लगता है।

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