हम अपने डेवेलपर्स टीम में बहुत नए हैं।
मुझे कुछ मजबूत तर्कों और / या "ख़राब" उदाहरणों की आवश्यकता है, इसलिए मेरा बॉस अंततः विनीत जावास्क्रिप्ट के फायदों को समझेगा, ताकि वह और टीम के बाकी सदस्य इस तरह की चीजें करना बंद कर दें:
<input type="button" class="bow-chicka-wow-wow"
onclick="send_some_ajax(); return false;" value="click me..." />
तथा
<script type="text/javascript">
function send_some_ajax()
{
// bunch of code ... BUT using jQuery !!!
}
</script>
मैंने एक बहुत ही सामान्य पैटर्न का उपयोग करने का सुझाव दिया:
<button id="ajaxer" type="button">click me...</button>
तथा
<script type="text/javascript">
// since #ajaxer is also delivered via ajax, I bind events to document
// -> not the best practice but it's not the point....
$(document).on('click', '#ajaxer', function(ev) {
var $elem = $(this);
ev.preventDefault();
});
मेरे बॉस (और अन्य) इस दृष्टिकोण का उपयोग नहीं करना चाहते हैं, इसका कारण यह है कि फायरबग (या क्रोम देव टूल्स) में घटना-निरीक्षण सरल नहीं है, जैसे कि
<input type="text" name="somename" id="someid" onchange="performChange()">
वह तुरंत यह देख सकता है कि परिवर्तन-ईवेंट पर कौन सा फ़ंक्शन निष्पादित होता है और स्पेगेटी-कोड से भरी एक विशाल जेएस फ़ाइल में सही से कूद जाता है ।
विनीत जावास्क्रिप्ट के मामले में केवल एक चीज वह देख सकता है:
<input type="text" name="somename" id="someid" />
और उसे इस बात का कोई अंदाजा नहीं है कि क्या कुछ घटनाएँ, यदि कोई हैं, तो इस तत्व के लिए बाध्य थीं और कौन सा कार्य शुरू हो जाएगा।
मैं एक समाधान की तलाश में था और इसे पाया:
$(document).data('events') // or .. $(document).data('events').click
लेकिन, इस "दृष्टिकोण" के कारण यह "बहुत लंबा ..." यह पता लगाने के लिए कि किस समारोह में किस समारोह में आग लग जाती है, इसलिए मुझे कहा गया था कि इस तरह की घटनाओं को रोकें।
मैं आपसे कुछ उदाहरण या मजबूत फायदे या किसी अन्य प्रकार के सुझाव के लिए पूछ रहा हूं "हमें यूजेएस का उपयोग क्यों करना चाहिए"
अद्यतन: "नौकरी बदलने" का सुझाव एक आदर्श समाधान नहीं है।
अद्यतन 2: ठीक है, मैंने केवल jQuery इवेंट-बाइंडिंग का उपयोग करने का सुझाव नहीं दिया है, मैंने ऐसा किया । जब मैंने सभी इवेंट-डेलिगेशन लिखा, तो बॉस मेरे पास आए और मुझसे पूछा, मैं अलग-अलग दृष्टिकोण और दृष्टिकोण के साथ इवेंट डेलिगेशन क्यों कर रहा हूं, वह नहीं जानते
मैंने कुछ स्पष्ट लाभों का उल्लेख किया, जैसे - 15 इनपुट-फ़ील्ड्स हैं और फिर सभी में एक onchange
ईवेंट है (न केवल उनमें से कुछ के पास भी है onkeyup
), इसलिए इस तरह के ईवेंट-प्रतिनिधिमंडल को सभी इनपुट-फ़ील्ड के लिए लिखना अधिक व्यावहारिक है, 15 बार करने के बजाय, खासकर यदि सभी HTML को PHP की गूंज -> के साथ प्रदान किया जाएगाecho '... <input type="text" id="someid" ... />...'
js-this-class-do-something
वर्ग होता है, इसलिए, आप कोड में इसके लिए आसानी से CTRL + F ले सकते हैं।