2010-07-01 12 views
6

मैं एक एम्बेडेड ऑब्जेक्ट पर ऑनक्लिक हैंडलर जोड़ने की कोशिश कर रहा हूं। हैंडलर को बाहरी .js फ़ाइल में एक फ़ंक्शन निष्पादित करने की आवश्यकता होती है जो वर्तमान HTML फ़ाइल से <script src="... के माध्यम से जुड़ा हुआ है।जावास्क्रिप्ट ऑनक्लिक हैंडलर को एम्बेडेड एचटीएमएल ऑब्जेक्ट में कैसे जोड़ा जाए?

क्या मुझे कहीं और स्थित होने के कारण अलग-अलग फ़ंक्शन को संदर्भित करने की आवश्यकता है? onclick अंदर svg को लागू करने और बाहरी को लिंक करने का

<embed src="svg/button.svg" id="buttonEmbed" width="95" height="53" 
type="image/svg+xml" onClick="buttonEvent('buttonClicked')"/> 
+0

क्या आप मुख्य कंटेनर के एसवीजी ऑनक्लिक के अंदर स्क्रिप्ट को कॉल नहीं कर सकते? – mplungjan

+0

संभावित डुप्लिकेट [एक एसवीजी छवि ऑब्जेक्ट को ऑनक्लिक के साथ क्लिक करने योग्य, पूर्ण स्थिति से परहेज करना] (http://stackoverflow.com/questions/2296097/making-an-svg-image-object-clickable-with-onclick-avoiding-absolute -पोशनिंग) – jtbandes

उत्तर

8

आपके पास:

यहाँ कोड के रूप में यह वर्तमान में खड़ा है (जो काम नहीं करता है, लेकिन यह भी किसी भी त्रुटि का उत्पादन नहीं करता है) Svg के अंदर जावास्क्रिप्ट का उपयोग कर जावास्क्रिप्ट फ़ंक्शन। उदाहरण के लिए एसवीजी विकी देखें।

अपडेट: स्पष्ट रूप से एसवीजी विकी अब और नहीं है। कोई आश्चर्य की बात नहीं है कि अब मैं (त्वरित) खोज कर सकते हैं सबसे अच्छे संदर्भ StackOverflow पर हैं।

This answer describes how to implement onclick inside the svg

+0

धन्यवाद। मैंने स्वयं को एसवीजी आकार के अंदर रखा है, हालांकि अब यह उस फ़ंक्शन को नहीं ढूंढ रहा है जिसे वह ढूंढ रहा है। संभवतः क्योंकि यह बाहरी .js फ़ाइल में है? –

+0

आप अपने एसवीजी से बाहरी फ़ंक्शन को कैसे कॉल कर रहे हैं? क्या आपने इसे 'शीर्ष' या 'parent.'' से पूर्ववत किया है? –

+0

मैंने बस ऑनक्लिक = "बटनइवेंट()" जोड़ा है (एक अलर्ट के साथ परीक्षण करने के बाद, जो काम करता है)। मुझे उपसर्ग और कहां होना चाहिए? –

1

या तो जावास्क्रिप्ट बाइंडिंग का उपयोग करें (मारियो मेंजर ने पहले ही उत्तर दिया है)।

आप या बंधन का उपयोग करेगा नहीं कर सकते हैं यदि नहीं, तो आप उपयोग कर सकते हैं क्या xil3 एक संशोधन के साथ उत्तर दिया:

उपयोग क्लिक उपभोक्ता के रूप में एक खाली एंकर टैग <a href="javascript:someFunc()"></a>। इसे जेड-इंडेक्स और स्थिति/आकार सेट करें ताकि यह svg ऑब्जेक्ट (क्रॉस-ब्राउज़र संगतता के लिए) पर स्थित हो।

0

ऑनक्लिक सभी को लोअरकेस होना चाहिए।

<embed src="svg/button.svg" id="buttonEmbed" width="95" height="53" 
type="image/svg+xml" onclick="alert('hello!');"/> 
+1

मुझे नहीं लगता कि यह काम करता है। – wkm

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