2009-12-02 19 views
5

jquery का उपयोग करके, मैं एक टैग के ऑनक्लिक विशेषता से जावास्क्रिप्ट प्राप्त करना चाहता हूं।jquery attr ("onClick") - यानी और एफएफ

<a href='#' onClick='alert("boo");' /> 

Firefox में: alert($('a').attr("onClick")) शो: alert("boo")

आईई 6/7 में: alert($('a').attr("onClick")) शो: function anonymous(){alert("boo");return false;}

मैं सिर्फ जावास्क्रिप्ट कैसे प्राप्त कर सकते हैं, और नहीं लपेटा समारोह, IE 6 में/7 jquery का उपयोग कर? (या सादा जावास्क्रिप्ट)?

Franko

+0

बस उत्सुक, क्यों आप विशेष रूप से पुनः प्राप्त करने की आवश्यकता है इस उदाहरण में 'अलर्ट ("बू")'? क्या आप इसे किसी अन्य स्थान से बुला रहे हैं या बस इस समय खोज रहे हैं? यदि आप किसी अन्य कारण के लिए मूल्य पुनर्प्राप्त करने का प्रयास कर रहे हैं, तो इसे संभालने का एक अलग तरीका हो सकता है। – JamesEggers

+0

इस समय बस खोज कर रहा था - यह सोच रहा था कि मुझे पाठ क्यों नहीं मिल रहा है/क्यों फ़ंक्शन i6/7 में वापस आ गया है। ie8 फ़ायरफ़ॉक्स की तरह व्यवहार करता है ... –

+0

@ फ्रैंकी बॉयल ओके। मैं अब खुद के बारे में उत्सुक हूं लेकिन यह सुनिश्चित करना चाहता था कि अगर आप सिर्फ खोज नहीं कर रहे थे तो कोई अलग दृष्टिकोण नहीं था। धन्यवाद। – JamesEggers

उत्तर

4

मैं सिर्फ जावास्क्रिप्ट कैसे प्राप्त कर सकते हैं, और नहीं लपेटा समारोह, IE में 6/7

आप आम तौर पर सभी को एक इनलाइन ईवेंट हैंडलर्स के लिए स्ट्रिंग मूल्यों पर भरोसा नहीं करना चाहते (में तथ्य यह है कि आपको आम तौर पर स्क्रिप्ट से कार्यों के लिए बाध्यकारी के पक्ष में इनलाइन ईवेंट हैंडलर विशेषताओं का उपयोग करना चाहिए - खासकर यदि आप jQuery का उपयोग कर रहे हैं, जहां यह दृष्टिकोण मानक है)। लेकिन अगर आपको करना है, तो कामकाज डीओएम विधि getAttributeNode है।

var link= $('a')[0]; // or whatever 
alert(link.getAttributeNode('onclick').value); 
+0

इनलाइन ईवेंट हैंडलर के लिए पूरी तरह से सहमत हैं कि गलत हैं - मैं सिर्फ एक खेल रहा था और coudlnt नहीं देख रहा था कि क्यों आईई अलग व्यवहार कर रहा था ... धन्यवाद! –

+0

लेकिन फिर एएसपी.नेट वेबफॉर्म है जहां डीओएम 0 ऑनक्लिक इवेंट हैंडलर का एक गुच्छा डिफ़ॉल्ट रूप से जेनरेट किया जाता है - मुझे यह जवाब मिलकर खुशी हुई क्योंकि मुझे उनके साथ गड़बड़ करने की ज़रूरत थी ... अच्छा, उनका उपयोग करें ;-) – Oliver

0

आप की कोशिश की है:

alert($('a').attr("onclick")) 

एक्सएचटीएमएल onClick में सही संस्करण नहीं है।

+0

चूंकि IE एक्सएचटीएमएल को समझ में नहीं आता है (यह इसे विकृत HTML के रूप में देखता है) जो ऐसा होने की संभावना नहीं है। – NickFitz

+0

लोअरकेस का उपयोग करके मुझे मिलता है: फ़ंक्शन ऑनक्लिक() {अलर्ट ("बू");} - एक ही समस्या –

2

इंटरनेट एक्सप्लोरर < 8 setAttribute और getAttribute जो विशेषता के बजाय दिए गए नाम के साथ संपत्ति से निपटने की एक पूरी तरह से टूट कार्यान्वयन है।

मुझे आसपास के काम के बारे में पता नहीं है।

+1

इस पर विस्तार करने के लिए: उस विशेषता का मूल्य जिसका नाम एंकर टैग का 'ऑनक्लिक' है 'अलर्ट() 'कॉल; उस टैग के अनुरूप डीओएम नोड की संपत्ति का मूल्य अनाम कार्य है। –

2

onclick जोड़ने की तुलना में बेहतर विशेषता IE6/IE7 की ओर से इस समाधान है:

$("a").click(function() { .. anything to do .. }) 
0

ब्राउज़र सुरक्षित:

jQuery('a')[0].getAttribute('onclick'); 
संबंधित मुद्दे