2009-04-03 18 views
6

मैं jQuery से एक और मेरे HTML दस्तावेज़ में केवल एक लिंक लेबल का उपयोग करके फ़ंक्शन को कैसे जोड़ूं जिसमें कई लिंक हैं?एक लिंक पर एक लिंक <a> पर jQuery को कैसे बाध्य करें?

मेरा कोड इस तरह दिखता है;

$("a").click(function(){ 
    $("#login").slidedown("slow"); 
}); 

लेकिन यह दस्तावेज़ में सभी लिंक को बांधता है।

+1

सभी लिंक का चयन करने का कारण यह है कि आप $ ('ए') कह रहे हैं, "प्रत्येक तत्व के लिए, फिर से क्लिक करें और एक क्लिक हैंडलर संलग्न करें।" जब आप वास्तव में कहें "$ $ ('a # show_login') ढूंढें और इस क्लिक हैंडलर को संलग्न करें।" jQuery चयनकर्ता कथन के भीतर हर पाए गए तत्व से मेल खाता है। –

उत्तर

13

अपने एंकर/लिंक को नाम दें जिसमें एक आईडी विशेषता वाला क्लिक ईवेंट है।

उदाहरण के लिए

तो:

<a href="..." id="clicked_link">...</a> 

और फिर निम्नलिखित jQuery बयान का उपयोग करें:

पाई के रूप में
$("#clicked_link").click(function(){ $("#login").slidedown("slow"); }); 

आसान!

14

माइकल पर विस्तार करने के लिए, आप एक वापसी झूठी जोड़ना चाहेंगे;

$("#clicked_link").click(function(){ 
    $("#login").slidedown("slow"); 
    return false; 
}); 

अन्यथा जब आप लिंक पर क्लिक करें ब्राउज़र अभी भी कड़ी का अनुसरण करने का प्रयास करेंगे और आप जावास्क्रिप्ट कार्रवाई खो देंगे।

+0

मैं आमतौर पर href = "जावास्क्रिप्ट: शून्य (0) सेट करता हूं;" – Aistina

+0

आपको ऐसा नहीं करना चाहिए। Jquery का मुद्दा अविभाज्य होना है। यदि आप कुछ करने के लिए href छोड़ते हैं, तो आप तब सुरक्षित हैं यदि ब्राउज़र में जावास्क्रिप्ट सक्षम नहीं है, आपने जो किया है, वह जावास्क्रिप्ट के बिना आपका लिंक पूरी तरह से अप्रभावी बना दिया गया है। –

+1

ओटीओएच, अगर लिंक का पालन किया जाता है तो मत भूलना, मामले में कुछ होना चाहिए (जैसे लॉगिन स्क्रीन)। ऐसा करने का एक और तरीका है href को साफ़ करना, या #anchor को लिंक के रूप में उपयोग करना ताकि इसका पालन नहीं किया जा सके। या एक संबंधित क्लिक हैंडलर के साथ एक span/div का उपयोग करें। मैं #show_login जैसे कुछ भी कहूंगा। –

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