2011-09-08 12 views
49

Google का उपयोग करने पर मैंने पाया कि वे एंकर टैग में ऑनक्लिक घटनाओं का उपयोग कर रहे हैं।जावास्क्रिप्ट ऑनक्लिक घटना के साथ एचटीएमएल एंकर टैग

Google हेडर भाग में विकल्प, यह सामान्य टैग की तरह दिखता है, लेकिन इसे चालू करने पर इसे पुनर्निर्देशित नहीं किया जाता है लेकिन मेनू खोला जाता है। आम तौर पर जब show_more_menu() फायरिंग के बिना

<a href='more.php' onclick='show_more_menu()'>More >>></a> 

यह आमतौर पर 'more.php' को जाता है का उपयोग कर, लेकिन मुझे लगता है कि पेज अपने आप में एक मेनू दिखाने की है। Google की तरह कैसे करें?

उत्तर

76

यदि आपका ऑनक्लिक फ़ंक्शन गलत लौटाता है तो डिफ़ॉल्ट ब्राउज़र व्यवहार रद्द कर दिया जाता है। जैसे:

<a href='http://www.google.com' onclick='return check()'>check</a> 

<script type='text/javascript'> 

function check() 
{ 
    return false; 
} 

</script> 

किसी भी तरह से, गूगल यह करता है या नहीं बहुत महत्व का नहीं है। जावास्क्रिप्ट के भीतर अपने ऑनक्लिक कार्यों को बांधना क्लीनर है - इस तरह आप अपने एचटीएमएल को दूसरे कोड से अलग करते हैं।

+2

1. अधिक यह सुनिश्चित हो, href = "#" में एक # का उपयोग करें और जावास्क्रिप्ट के भीतर आवश्यक काम करते हैं। # Href के साथ उस लिंक पर क्लिक करना सुरक्षित है; पृष्ठ यूआरएल छोड़/पुनः लोड करता है। –

32

जो मैं समझता हूं कि लिंक पर क्लिक होने पर आप रीडायरेक्ट नहीं करना चाहते हैं। आप कर सकते हैं:

<a href='javascript:;' onclick='show_more_menu();'>More ></a> 
+0

यह सहायक होता है जब आप नहीं चाहते कि href कहीं भी इंगित करे। – kbpontius

+0

यह अच्छा है और यह काम करता है लेकिन jquery त्रुटि को फेंकता है "त्रुटि: सिंटेक्स त्रुटि, अपरिचित अभिव्यक्ति: जावास्क्रिप्ट:;" – TheOddCoder

40

तुम भी विकल्प नीचे की कोशिश कर सकते हैं:

<a href="javascript:show_more_menu();">More >>></a> 
+0

चेतावनी: यदि फ़ंक्शन कोई स्पष्ट मान देता है (उदा: 'वापसी शून्य;', लेकिन 'वापसी नहीं; '), तो फ़ायरफ़ॉक्स जैसे कुछ ब्राउज़रों में इसका अनपेक्षित परिणाम होगा। पृष्ठ में स्ट्रिंग प्रारूप (पूर्व: '[ऑब्जेक्ट ऑब्जेक्ट] ') में लौटाए गए मान के साथ सभी सामग्री बदली जाएगी। – rannmann

+0

मुझे एक त्रुटि देता है 'फ़ंक्शन परिभाषित नहीं किया गया है'। –