2009-10-08 11 views
10

वर्तमान में मैं कुछ ऐसा उपयोग कर रहा हूं:JQuery क्लिक फ़ंक्शन पर एकाधिक तर्क कैसे भेजें?

$('.myclass').click(function(){ 
    var msg = $(this).attr('id'); 
    alert(msg) 
}); 

और HTML:

< a href="#" class="myclass" id="101">Link</a> 

अगर मुझे अतिरिक्त पैरामीटर चाहिए तो मैं उन्हें कैसे पढ़ूं? वर्तमान तरीका भी मैं सही तरीके से उपयोग कर रहा हूं? मूल रूप से मैं छिपे हुए इनपुट फ़ील्ड्स का उपयोग कर रहा था, इसलिए यह पहले से ही एक कदम था। : पी

+0

इसे किसी आईडी के साथ एक आईडी शुरू करने के लिए खराब सम्मेलन माना जाता है, लेकिन यदि आप इसे आईडी के रूप में उपयोग नहीं कर रहे हैं, तो शायद यह ठीक है - पिछली बार मैंने चेक किया था, फ़ायरफ़ॉक्स किसी आईडी से शुरू होने वाली आईडी को पहचान नहीं पाएगा। – Mottie

+0

हां, यह सही धुंधला है ... अपनी आईडी को एक नंबर शुरू न करें, लेकिन मेरे उत्तर में विचार अभी भी वही है। – Jason

उत्तर

18

jQuery Events

jQuery .click()

$('.myclass').bind("click", { Param1: "", Param2: 2 }, function(event){ 
    alert(event.data.Param2); 
}); 
+3

क्या इसका मतलब होगा कि मुझे इस फ़ंक्शन को एक ही पृष्ठ पर शामिल करना होगा? वर्तमान में मेरे सभी जेएस सामान एक अलग फाइल में है। – Roger

+0

तो, मैं घटना डेटा में एक संपूर्ण जेसन ऑब्जेक्ट को पास करना संभव है, है ना? अच्छी सुविधा –

+0

@Roger आप के बाहर भी फ़ंक्शन हो सकता है, बस event.data.ParamX विधि का उपयोग करके अपने बाहरी फ़ंक्शन में तर्कों को पार्स करना सुनिश्चित करें। यह पूरी तरह से काम करता है। – andreszs

1

इस ईवेंट हैंडलर को अतिरिक्त जानकारी भेजने का सबसे अच्छा तरीका नहीं हो सकता है सकते हैं, लेकिन मुझे कुछ किया है हाइपन को अन्य पैरा के साथ आईडी विशेषता को चित्रित करना है, जैसे id="101-red-420582" जो सभी तीनों अलग-अलग चीजों को समझते हैं और split() का उपयोग करके आसानी से टूटा जा सकता है समारोह। सबसे अच्छा नहीं, प्रति से, लेकिन मैंने इसे किया है और यह काम करता है।

+2

संयोग से मैं इस सटीक विचार के साथ आया था और यह ठीक काम कर रहा था, लेकिन जैसा कि आपने यह भी सुनिश्चित नहीं किया कि यह सही तरीका है और कभी-कभी स्ट्रिंग काफी बड़ी हो सकती है (सुनिश्चित नहीं है कि आईडी की सीमा है या नहीं)। – Roger

+0

मैं हर समय एक समान विधि का उपयोग करता हूं, लेकिन 'आईडी' के बजाय मैं 'rel' विशेषता का उपयोग करता हूं। मेरा मानना ​​है कि एचटीएमएल सहित आपको जितनी अधिक जानकारी चाहिए उतनी ही जानकारी होगी। – Mottie

0

त्वरित समाधान

<p class="msg_head" id="837" rel="a" **till_limit="9"**>Header-1 </p>

और आप उल्लेख कर सकते हैं के रूप में

$(this).attr('till_limit'); 

यह अपनी खुद की आईडी को परिभाषित करने और अपने आवश्यकता के अनुसार तत्व उल्लेख की तरह समान समाधान है।

+1

कृपया अपनी पोस्ट में हस्ताक्षर या टैगलाइन का उपयोग न करें] (http://stackoverflow.com/faq#signatures)। – meagar

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