मैंने अभी JQuery को देखना शुरू कर दिया है। मेरे पास वर्तमान में मेरे वेब एप्लिकेशन में कोई AJAX नहीं है।JQuery: ऑनक्लिक घटना के बजाए अविभाज्य जावास्क्रिप्ट/दस्तावेज़ तैयार फ़ंक्शन क्यों?
<form ...>
<p>Find what? <input ...></p>
<div class="ButtonArray">
<a href="AddRecord.ASP&Action=ADD">ADD</a>
<a href="#" onClick="return MyFormSubmit();">FIND</a>
</div>
</form>
यह [जोड़े] और [खोजें] के लिए बटन प्रदर्शित करता है:
मेरी HTML में मेरे मौजूदा JavaScript तरह दिखता है। ढूंढने के लिए फॉर्म सबमिट करना जरूरी है, और मैं MyFormSubmit() का उपयोग करता हूं जो डेटा को मान्य करता है, पृष्ठ पर एक दृश्य प्रभाव जोड़ता है, और उसके बाद डेटा पोस्ट करता है।
मैं खोज बटन के लिए करने के लिए एक वर्ग या आईडी जोड़ सकते हैं और JQuery में मैं की तरह कुछ लिख सकते हैं: JQuery के साथ
$(function() {
$(".MySearchButtonClass").click(function() {
// validate and process form here
});
});
समझ की मेरी "नौसिखिया" अवस्था में मैं नहीं करते मैं ऐसा क्यों करूंगा
मेरा पुराना तरीका ऑब्जेक्ट के पास विधि की पहचान करता है। उपयोगकर्ता को बटन दबाए जाने से पहले जेएस लोड नहीं हुआ है (क्या वहां है? जेएस के लिए लोड पेज के शीर्ष पर सही है)।
दस्तावेज़ लोड होने तक JQuery दस्तावेज़ तैयार विधि सक्रिय नहीं की जाएगी (जो मुझे लगता है कि जेएस सभी मौजूद है और चलाने के लिए तैयार है?), लेकिन यह कोड को मेरे HTML के एक अलग हिस्से में ले जाता है फ़ाइल - इसलिए जब मैं HTML स्रोत में MyButtonArray DIV देखता हूं तो यह मेरे लिए स्पष्ट नहीं है कि किस ऑब्जेक्ट में विधियां हैं, और जो नहीं।
क्या आप कृपया मेरी समझ में मदद कर सकते हैं कि मेरे विकल्प क्या हैं और मुझे क्या लाभ/मिलन देखना चाहिए?
संपादित: मैं आराम से कर रहा हूँ कि डोम हेरफेर - विनीत जावास्क्रिप्ट का प्रयोग करेंगे - जैसे एक लाइटबॉक्स कि जब वर्ग "LightBoxThumb" के साथ किसी भी थंबनेल क्लिक किया जाता है प्रदर्शित कर सकते हैं के रूप में।
हालांकि मैं खुद को मनाने के लिए संघर्ष कर रहा हूं कि एक बटन जिसमें एक विशिष्ट कार्यवाही हो, उसकी विधि इस तरह लागू होनी चाहिए। (मैं निश्चित रूप से किसी अन्य फ़ंक्शन कॉल के अलावा बटन पर किसी अन्य कोड को "कहीं और" नहीं डालूंगा, लेकिन मेरे दिमाग में यह है कि यह बटन क्या करता है, और मेरे अविश्वसनीय जावास्क्रिप्ट की परतें बहुत कठिन हो सकती हैं निर्धारित करने के लिए)
EDIT2 -। स्वीकृत उत्तर
मैं रस कैम जवाब कर लिया है। यह अविभाज्य जावास्क्रिप्ट का वर्णन इस तरह से करता है कि & के बारे में और अधिक समझने में मुझे मदद मिली है जब इसका उपयोग किया जाना चाहिए।
इस पल के लिए (जब मेरे पास और अनुभव हो तो बदल सकता है!) मैं एक ऑब्जेक्ट पर एक एकल, गैर-परिवर्तनकारी, क्रिया के लिए ऑनक्लिक ईवेंट के साथ रहूंगा क्योंकि मुझे लगता है कि मेरे लिए डीबग करना आसान होगा - और अगर समस्या उत्पन्न होती है तो निदान करें। एक तालिका स्तंभ शीर्ष सॉर्ट करने के लिए पर क्लिक करें की अनुमति देता है पर ZebraStripes (और उस प्रकार की स्थितियों) के लिए मैं विनीत जावास्क्रिप्ट दृष्टिकोण के लाभ देख सकते हैं
रस की अंतिम टिप्पणी की गई थी विशेष रूप से उपयोगी है, यहाँ दोहराया:
"@ क्रिस्टन - आप सही हैं, प्रोग्रामिंग विषयों के बहुत सारे की तरह, एक दृष्टिकोण से अधिक है और लोग अपने विश्वासों से दृढ़ता से खड़े होंगे!हम एक बटन के लिए एक एकल विधि के बारे में बात कर रहे हैं , मैं पूरी तरह के लिए कॉल को समझने जहां एक ही समारोह के साथ से ...
आ रहे हैं हम जावास्क्रिप्ट के बहुत सारे के बारे में बात कर रहे हैं, एक तत्व की तुलना में अधिक है, अलग समारोह विभिन्न तरीकों के लिए कहता है, आदि मुझे लगता है कि किसी को भी स्वयं इनलाइन और विनीत दृष्टिकोण मिश्रण करने के लिए और अधिक मुश्किल होगा, और यह बेहतर होगा एक या अन्य दृष्टिकोण "अपनाने के लिए
धन्यवाद; Unobtrusive जावास्क्रिप्ट का संदर्भ बहुत उपयोगी है; मैंने अपनी खरीदारी सूची में पहले और इसकी सिफारिश की "jQuery में एक्शन" देखा है! मैं नमूना अध्यायों का एक पठन होगा। – Kristen
नमूना मंत्रियों के लिए पीएस लिंक सही दिखते हैं, लेकिन इस पृष्ठ से सीधे मेरे लिए काम नहीं करते हैं - लेकिन वे इस पृष्ठ पर इस साइट पर उपलब्ध हैं: http://www.manning.com/bibeault/ – Kristen
"एक ही घटना उठाई गई कई तत्वों में से प्रत्येक पर "इसके साथ कोई समस्या नहीं - ज़ेबरा स्ट्रिप्स को एक टेबल पर स्ट्रिप करता है जिसने सॉर्ट के लिए क्लिक-कॉलम-हेडिंग की अनुमति दी है, उदाहरण के लिए। मैं इस सिंगल-विधि सबमिट बटन के मामले में क्या संघर्ष कर रहा हूं। – Kristen