5

क्रोम के डेवलपर टूल का उपयोग करके मैं यह निर्धारित करने की कोशिश कर रहा हूं कि कौन सा jQuery फ़ंक्शन डिबगिंग उद्देश्यों के लिए पृष्ठ पर एक इनपुट बटन लगा रहा है। मैं आमतौर पर तब तक खोज करता रहता हूं जब तक मुझे यह पता न लगे, लेकिन मुझे लगा कि मैं इस बार पूछूंगा।jQuery और क्रोम - बटन हुक ढूंढना

क्या क्रोम में एक विशिष्ट बटन के लिए jQuery बटन हुक खोजने का कोई तरीका है? मैंने इवेंट श्रोता ब्रेकपॉइंट्स को देखने का प्रयास किया है, लेकिन इसे रोकने के लिए सही चीज़ नहीं लग रही है।

असल में, मुझे यह जानने की ज़रूरत है कि बटन क्लिक करने के बाद मुझे jQuery/जावास्क्रिप्ट को निष्पादित किया जा रहा है।

हुक इसलिए की तरह आवेदन में लागू किया जाता है:

$('.button_class').click(function(){ 
$('#button_id').click(function(){ 
etc... 
+1

की [करने के लिए एक तत्व का निरीक्षण संभव डुप्लिकेट jQuery इवेंट बाइंडिंग की जांच करें] (http://stackoverflow.com/questions/3960709/inspect-an-element-to-investigate-jquery-event- बाइंडिंग्स) –

उत्तर

1

पेज इस हमेशा काम नहीं करता पर घटनाओं/टाइमर की संख्या पर निर्भर करता है। लेकिन आप जिस बटन को जावास्क्रिप्ट डीबग विंडो में डीबग करना चाहते हैं उसे क्लिक करने से पहले "रुकने" का प्रयास कर सकते हैं। इस तरह डीबगर अगले लाइन निष्पादित करता है जो रोक देगा। ऐसी चीज जो कभी-कभी आपको इसका उपयोग करने से रोकती है, यह है कि अगर कोई "होवर" या mouse move/in/out ईवेंट उस तत्व पर बंधे हैं जो आपको बटन (बटन स्वयं सहित) पर जाने के लिए पास करना है। उस स्थिति में मैं उन घटनाओं को हटा देता हूं (यदि मैं कर सकता हूं) जब तक कि मुझे वह नहीं मिलता है। इवेंट श्रोता ब्रेकपॉइंट्स अधिक आदर्श होंगे लेकिन वे कभी-कभी jQuery या दूसरी लाइब्रेरी का उपयोग करते समय मुश्किल होते हैं, मैंने वास्तव में क्रोम देव टूल्स टीम को इस समस्या को हल करने के लिए एक फीचर अनुरोध किया है।

सौभाग्य -ck

+1

धन्यवाद, काम से पहले विराम। सावधान रहना होगा कि मैं इसे कैसे करता हूं। माउस को स्थानांतरित करने से मेरे लिए पेज भी रुक जाएगा, इसलिए मुझे क्रोम देव टूल्स विंडो (मैं इसे पॉप आउट करता हूं) पर ध्यान केंद्रित करना होगा और फिर माउस को स्थिति में ले जाना होगा, F8 दबाएं, फिर बटन पर क्लिक करें। हालांकि यह पूरी तरह से आदर्श नहीं है, क्योंकि यह सीधे jquery फ़ाइल पर जाता है। यह अच्छा होगा अगर वे क्रोम देव टूल्स में उस सुविधा को जोड़ते हैं। अगर मैं इसे jQuery फ़ाइल में फाइल न देखने के लिए कह सकता हूं तो यह मेरी ज़िंदगी को थोड़ा आसान बना देगा। (उन 3 लाइनों का मतलब मेरे लिए कुछ भी नहीं है।) – teynon

+0

@ टोम हाँ, ये मेरी भावनाएं बिल्कुल हैं। पुस्तकालय "डोम इवेंट ब्रेकपॉइंट्स" की उपयोगिता को कम करते हैं (जो मुझे लगता है कि वे अपने ही अधिकार में भयानक हैं) आपको उस विशेषता के बारे में पॉल आयरिश को स्पैम करना चाहिए यदि आप इसे चाहते हैं ... – ckozl

+0

@ckozl - क्या आपको टीम से कोई प्रतिक्रिया मिली? यदि नहीं, तो क्या आप अपने फीचर अनुरोध के लिंक प्रदान कर सकते हैं। यह एक जरूरी है क्योंकि इस समय ईवेंट श्रोता ब्रेकपॉइंट्स jQuery जैसी व्यापक लाइब्रेरी का उपयोग करते समय बेकार हैं। – Nullius

2

इस कोशिश (आप निर्दिष्ट करने के लिए "तुम्हारा" और केवल "तोड़ने" उन विशिष्ट फाइलों में क्या फ़ाइलें हैं अनुमति देता है):

$(yourbutton).data('events'); 
+0

धन्यवाद, यह पूरी तरह से मुझे प्राप्त नहीं करता है, लेकिन यह जानना दिलचस्प है। ऐसा लगता है कि श्रोताओं को झुकाया जाता है, लेकिन फ़ाइल या रेखा द्वारा फ़ंक्शन को इंगित नहीं करता है। – teynon

+0

बस एक sidenote के रूप में: jQuery 1.8+ के रूप में यह विधि अपरिभाषित वापस आ जाएगी। इसके बजाय, आपको $ ._ डेटा (तत्व, "ईवेंट") का उपयोग करना चाहिए – Nullius

+0

http://stackoverflow.com/questions/2518421/jquery-find-events-handlers-registered-with-an-object – Nullius

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