2012-11-15 19 views
10

मैं एक Jquery फ़ंक्शन के लिए मान पास करना चाहता हूं। नीचे जावास्क्रिप्ट नमूना कोड है। मैं इस जावास्क्रिप्ट फ़ंक्शन को jquery फ़ंक्शन में कनवर्ट करना चाहता हूं। मैं राज्य नाम को jquery onclick फ़ंक्शन में कैसे पास कर सकता हूं?JQuery फ़ंक्शन में तर्क कैसे पारित करें?

<a onclick="showState('state_name')">ADD STATE </a> 

function showState(state_name){ 
openbox_state(state_name); 
} 

कृपया मेरी मदद करें।

उत्तर

12

आप वास्तव में यह स्पष्ट नहीं है कि आप अलग-अलग राज्यों, या जोड़ने के लिए लंगर की एक श्रृंखला है कि क्या की तरह जिम्मेदार बताते हैं ...?

<a data-stateName="state_name">ADD STATE </a> 

और फिर जे एस में jQuery के साथ,:

आप करते हैं, आप उपयुक्त राज्य नाम प्रत्येक लिंक के लिए रिकॉर्ड करने के लिए कुछ इस तरह कर सकते हैं

$(document).ready(function() { 
    $("a[data-stateName]").click(function() { 
     openbox_state($(this).attr("data-stateName")); 
    }); 
}); 

यह इनलाइन को हटा अपने एचटीएमएल से जावास्क्रिप्ट, और उसके बाद केवल data-stateName विशेषता वाले उन <a> तत्वों पर क्लिक हैंडलर को बाध्य करने के लिए jQuery का उपयोग करता है। उसके बाद हैंडलर को openbox_state() फ़ंक्शन पर जाने के लिए उस विशेषता का मान मिलता है।

दस्तावेज़ तैयार हैंडलर यह सुनिश्चित करता है कि एंकर क्लिक बाध्यकारी तब तक नहीं होता जब तक दस्तावेज़ वास्तव में तैयार न हो जाए, यानी, तत्वों को पार्स किए जाने के बाद और जेएस से एक्सेस किया जा सकता है। (यदि आप शरीर तत्व के अंत में एक स्क्रिप्ट ब्लॉक में अपने जे एस डाल तुम एक तैयार हैंडलर जरूरत नहीं है।)

+0

यदि आप चाहें तो आप' $ (यह) .डेटा ('stateName') भी कर सकते हैं। –

+0

@muistooshort - True। I ऐसा इसलिए नहीं किया क्योंकि मैं '.data()' का उपयोग करने के लिए केवल '.data() 'के साथ सेट मानों को पुनर्प्राप्त करने की आदत में हूं, विशेषता मानों के लिए नहीं। इससे कोई फर्क नहीं पड़ता, लेकिन मैं '.ata()' प्रयास को पसंद नहीं करते हैं HTML विशेषताएँ पुनर्प्राप्त करने के लिए उपयोग किए जाने पर ओमेटिक प्रकार रूपांतरण। – nnnnnn

+0

मैं आपको "सॉफ्टवेयर से बेहतर होने का नाटक करने वाला सॉफ्टवेयर" सुनता हूं, मैं ईमानदार और लगातार मूर्खता पसंद करता हूं :) –

1

इस तरह:

$('#MyID').click(function() { 

     var StateName = $(this).text(); 
     showState(StateName);  
    }); 

और फिर HTML के लिए, तो आप इस तरह कुछ आईडी डाल सकता है:

<a id="MyID">ADD STATE </a> 

या, यदि आप कई राज्यों (जो मुझे लगता है है कि तुम क्या ' करने की कोशिश कर रहे हैं) तो आप इस तरह सीएसएस वर्ग द्वारा लिंक का संदर्भ दे सकते हैं:

<a class="StateSelector">ADD STATE </a> 

और फिर आपका jQuery कोड बीको एमईएस: यदि आप इस तरह अलग अलग तर्क के साथ कई a है, तो

$(document).ready(function() { 

    $('.StateSelector').click(function() { 

      var StateName = $(this).text(); 
      showState(StateName);   
    }); 
}); 
+0

क्या आप इस लाइन के लिए संबंधित कोड प्रदान कर सकते हैं, कृपया ADD STATE sjkon

+0

ऑनक्लिक = "शोस्टेट (...) के लिए कोई आवश्यकता नहीं है, jquery आपके लिए ईवेंट को संभालती है। आप शायद कुछ आईडी डालना चाहें लिंक को संदर्भित करने के लिए एचटीएमएल; संपादन देखें। – frenchie

+0

ठीक है। बहुत बहुत धन्यवाद। – sjkon

0
<a>Montana</a> 

$('a').on('click', function(){ 
    var state = this.text ; // OR $(this).text(); OR $(this).html(); 
    showState(state); 
}); 
1

:

$('.StateSelector').click(function() { 

     var StateName = $(this).text(); 
     showState(StateName);   
}); 

घटना से निपटने के ऊपर तार करने के लिए, आप jQuery कोड दस्तावेज़ तैयार समारोह में इस तरह रख सकते हैं ।

<a onclick="showState('Delhi')">ADD STATE</a> 
<a onclick="showState('Punjab')">ADD STATE</a> 
<a onclick="showState('Gujrat')">ADD STATE</a> 

function showState(state_name){ 
openbox_state(state_name); 
} 

तो आप कस्टम उपयोग कर सकते हैं इस

<a state="Delhi">ADD STATE</a> 
<a state="Punjab">ADD STATE</a> 
<a state="Gujrat">ADD STATE</a> 

$('a').click(function() { 
    var StateName = $(this).attr("state"); 
    openbox_state(StateName); 
}); 
2

आप कुछ इस तरह कर सकते हैं:

<a onclick="showState()" id="florida">ADD STATE </a> 

function showState(state_name){ 
    var state_name = $(this).attr('id') 
    openbox_state(state_name); 
} 

इस समारोह को पुनः प्राप्त करेगा लिंक से "आईडी" मान। फिर आप अपने "openbox_state()" फ़ंक्शन पर मान पास कर सकते हैं।:-)

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