2015-11-24 4 views
8

मेरे पास एक छवि दिखाने के लिए माउसओवर के लिए एक स्क्रिप्ट वाला तत्व है। मैं HTML को नहीं बदल सकता, इसलिए लिंक में जावास्क्रिप्ट को अक्षम करना संभव है, लेकिन अभी भी href को बरकरार रखने के लिए लिंक रखें? मैं तत्व की आईडी का उपयोग नहीं कर सकता क्योंकि यह अद्वितीय नहीं है।किसी तत्व में जावास्क्रिप्ट को अक्षम करें

HTML:

<div class="container"> 
<a id="a211094" onmouseout="etim();" onmouseover="stim('/imgs/7c24b548-4f4c-418e-ad4f-53c73cf52ace/250/250',event,this.id);" href="/products/Computers/Desktops/Acer/Acer-Aspire-TC-705W-Towermodel-1-x-Core-i3-41?prodid=211094"><img src="" alt=""> 
</a> 
</div> 
+1

क्या _can_ आप संशोधित करते हैं? क्या आप पेज में अतिरिक्त जावास्क्रिप्ट डाल सकते हैं? –

+1

हाँ मैं जावास्क्रिप्ट और jQuery – Xeptor

+1

जोड़ सकता हूं आपका कोड गुम हो गया है? – CoderPi

उत्तर

2

आप सभी ancher टैग करना चाहते हैं या आप उन एंकर टैग जिस पर आप प्रदर्शन करने के लिए चाहते हैं के लिए वर्ग दे सकते हैं यह और $ ("ए") के बजाय $ (".myClass")

$("a").each(function(index) { 
$(this).removeAttr("onmouseout"); 
$(this).removeAttr("onmouseover"); 
}); 

उपयोग attr ("अक्षम", "अक्षम") का उपयोग कर सकते हैं; इसे अक्षम करने के लिए

+0

का उपयोग करते हैं, यह बहुत अच्छा काम करता है! – Xeptor

1
document.getElementById("a211094").removeAttribute("onmouseout"); 
document.getElementById("a211094").removeAttribute("onmouseover"); 
+0

अब आपने किसी भी टिप्पणी या स्पष्टीकरण के बिना थोड़े समय में 2 गलत उत्तर दिए हैं-.- यह नहीं है कि आपको यह कैसे करना चाहिए .. -1 – CoderPi

+0

असल में, जवाब सही था। जैसा कि मैंने कहा, यह एक टाइपो था। अब साथ चलें। –

2

जावास्क्रिप्ट को ओवरराइट:

document.getElementById("a211094").onmouseover = null 
document.getElementById("a211094").onmouseout = null 
+0

मैं लिंक की आईडी का उपयोग नहीं कर सकता - मेरे पास अलग-अलग आईडी के साथ उनमें से एक समूह है। मैंने document.getElementsByClassName को आजमाया और माता-पिता कोटेनर के साथ एक वर्ग को घोंसला दिया लेकिन यह काम नहीं किया। – Xeptor

+0

एचटीएमएल डोम 'getElementsByTagName()' विधि: http://www.w3schools.com/jsref/met_element_getelementsbytagname.asp – CoderPi

+0

उत्तर के लिए धन्यवाद। आश्वस्त नहीं कि इसे कैसे उपयोग करना है? – Xeptor

0

यदि आप लगातार तत्व को एक्सेस और नियंत्रित कर सकते हैं तो आप कंटेनर पर ऑन-हाउसओवर ईवेंट का उपयोग करके थोड़ा बाएं-क्षेत्र दृष्टिकोण का प्रयास कर सकते हैं।

सेटकैप्चर() नामक एक फ़ंक्शन है जिसे आप माउस ईवेंट के दौरान कॉल कर सकते हैं, जिस तरह से माउस के ईवेंट या रिलीज कैप्चर() को कॉल किया जाता है, तब तक उस तत्व के सभी माउस ईवेंट को "कैप्चर" करने के लिए कॉल किया जा सकता है। तो आप निम्नलिखित की तरह कुछ कर सकता है:

jQuery(document).ready(function() { 
    $container = jQuery("#<yourcontainerid>"); 
    $container.on("mouseover", function(e) { 
    if (e.target.setCapture) e.target.setCapture(true); 
    }); 

    $container.on("mouseout", function() { 
     document.releaseCapture(); 
    }); 

}); 

(सच) तर्क महत्वपूर्ण है (मुझे लगता है, परीक्षण के बिना) के रूप में यह किसी भी वंशज घटनाओं फायरिंग, जो कि तुम यहाँ क्या चाहते से बचाता है।

माउसआउट फ़ंक्शन कैप्चरर को तब छोड़ देगा जब यह कंटेनर के क्षेत्र को छोड़ देता है।

क्या यह काम करेगा? निश्चित रूप से नहीं कह सकता, मैंने इसे आपके सटीक मामले में परीक्षण नहीं किया है, लेकिन सिद्धांत में इसे चाहिए!

अपडेट: आप JQuery में "#yourcontainerid" की बजाय ".container" का उपयोग कर सकते हैं यदि आप कक्षा कंटेनर के सब कुछ के लिए इसे सक्षम करना चाहते हैं।

+0

हे प्रयास के लिए धन्यवाद - हालांकि यह काम नहीं किया। एक त्रुटि फेंक नहीं दी लेकिन घटना अभी भी निकाल दी गई। – Xeptor

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