JQuery

2009-12-30 3 views
5

के साथ होवर आइटम जावास्क्रिप्ट का उपयोग कर तत्व को होवर करने का कोई तरीका है? मैं एक और कक्षा नहीं बनाना चाहता, मैं सिर्फ तत्व को जावास्क्रिप्ट के साथ होवर करना चाहता हूं जब मेरा माउस पॉइंटर उस तत्व पर नहीं है।JQuery

उदाहरण के लिए मेरे पास एक ही कक्षा के साथ 5 तत्व हैं और मैं उनमें से एक पर होवर कॉल करना चाहता हूं जब उनमें से एक वास्तव में आच्छादित है।

+1

आप के बारे में बात कर रहे हैं क्या में एक ही समय में अपने संग्रह में आइटम के सभी संबोधित करके इस लक्ष्य को हासिल कर सकते हैं? – SLaks

+0

"आइटम को होवर" से आपका क्या मतलब है? इसे अलग दिखें? –

उत्तर

6

मैं तुम्हें छद्म वर्ग :hover करें जिसे आप लिंक (उदाहरण के लिए) से संबद्ध किए गए मतलब मान। जैसे ही आप उस लिंक पर होवर करते हैं, आप अन्य सभी लिंक की :hover शैलियों का आह्वान करना चाहते हैं।

दुर्भाग्य से, आप jQuery से :hover शैलियों का आह्वान नहीं कर सकते हैं, जिसके लिए आप वास्तव में उस तत्व पर अपना माउस पॉइंटर ले जाते हैं। आपको कक्षाओं का उपयोग करना होगा और jQuery के होवर ईवेंट का उपयोग करना होगा।

2

यदि मैं आपके प्रश्न को सही ढंग से समझता हूं, तो आपने jQuery का उपयोग करके hover ईवेंट जोड़ा है, और आप माउस को ध्यान दिए बिना मैन्युअल रूप से उस ईवेंट को ट्रिगर करना चाहते हैं।

यदि मैं सही ढंग से समझ गया, तो mouseenter ईवेंट ट्रिगर करने के लिए आप mouseenter पर कॉल करना चाहते हैं।

यदि मैं गलत तरीके से समझ गया हूं, और आपके पास वास्तव में :hover सीएसएस नियम है जिसे आप जावास्क्रिप्ट का उपयोग करके ट्रिगर करना चाहते हैं, तो यह संभव नहीं है।
इसके बजाय, आपको नियम में कक्षा का नाम जोड़ना चाहिए (उदाहरण के लिए, something:hover, something.FakeHover { ... }), और jQuery का उपयोग करके उस वर्ग का नाम जोड़ें। (उदाहरण के लिए, $(...).addClass('FakeHover'))।

0

jQuery में, the trigger function आपको तत्वों पर ट्रिगर करने की अनुमति देता है (mouseover, मुझे विश्वास है) तत्वों पर।

सीधे जावास्क्रिप्ट में, यदि आपने किसी तत्व के ईवेंट हैंडलर को फ़ंक्शन सौंपा है, तो आप निश्चित रूप से कॉल कर सकते हैं जब भी आप चाहें। जैसे

function mouseoverHandler() { 
    // Do something 
} 

// Assign function to element’s event handler 
document.getElementById('link1').onmouseover = mouseoverHandler 

// Call that function 
document.getElementById('link1').onmouseover(); 
+2

आपको 'ट्रिगर' की भी आवश्यकता नहीं है, कॉलबैक फ़ंक्शन के बिना ईवेंट को कॉल करना भी उदाहरण के लिए, उदाहरण के लिए '$ ('# foo')। क्लिक करें(); '# foo' के क्लिक ईवेंट को आग लग जाएगा। –

+0

सही, लेकिन मुझे नहीं लगता कि यह 'माउसओवर' के लिए काम करता है। [प्रलेखन] के अनुसार (http://docs.jquery.com/Events), 'माउसओवर()' बस आपको किसी तत्व के माउसओवर ईवेंट में फ़ंक्शन को बांधने देता है। यह आपको घटना को ट्रिगर नहीं करने देता है। –

+1

भले ही प्रलेखन इसका उल्लेख नहीं करता है, यह 'माउसओवर' के लिए काम करता है। मैं स्रोत की जांच करता हूं। – SLaks

3

आप अपने मंडराना ईवेंट हैंडलर्स

var items = $(".some-class-applied-to-many-different-items"); 
items.hover(function() { 
     // Mouseover state 
     items.addClass("blah"); // <- for example 
    }, 
    function() { 
     // Mouseout state 
     items.removeClass("blah"); 
}); 
+0

मुझे यह जानना अच्छा लगेगा कि नीचे क्या वोट के लिए है। –