( जावास्क्रिप्ट के साथ आबादी वाले तत्वों का उपयोग करने की आवश्यकता होने पर इस उत्तर में अंतिम संपादन देखें.on() )
इसका उपयोग उन तत्वों के लिए करें, जो जावास्क्रिप्ट का उपयोग कर आबाद नहीं हैं:
$(".selector").on("mouseover", function () {
//stuff to do on mouseover
});
.hover()इसका अपना हैंडलर है: http://api.jquery.com/hover/
यदि आप कई कार्य करना चाहते हैं, तो उन्हें .on()हैंडलर में श्रृंखलाबद्ध करें, जैसे:
$(".selector").on({
mouseenter: function () {
//stuff to do on mouse enter
},
mouseleave: function () {
//stuff to do on mouse leave
}
});
प्रदान की नीचे आप उपयोग कर सकते हैं जवाब के अनुसार hoverके साथ .on()है, लेकिन:
यद्यपि नए कोड के लिए दृढ़ता से हतोत्साहित किया जाता है, आप स्ट्रिंग "माउसेंटर मूसलीव" के लिए शॉर्टहैंड के रूप में उपयोग किए जाने वाले छद्म-घटना-नाम "होवर" को देख सकते हैं। यह उन दो घटनाओं के लिए एक एकल ईवेंट हैंडलर संलग्न करता है, और हैंडलर ने ईवेंट की जांच करनी चाहिए। यह निर्धारित करने के लिए कि ईवेंट माउसटरेन या मूसलीव है। "होवर" छद्म घटना-नाम को .hover () विधि के साथ भ्रमित न करें, जो एक या दो कार्यों को स्वीकार करता है।
इसके अलावा, इसका उपयोग करने के लिए कोई प्रदर्शन लाभ नहीं हैं और यह केवल उपयोग करने से अधिक तेज़ है mouseenterया mouseleave। मैंने जो उत्तर दिया है, उसके लिए कम कोड की आवश्यकता है और इस तरह से कुछ हासिल करने का उचित तरीका है।
संपादित करें
इस प्रश्न का उत्तर दिए कुछ समय हो गया है और ऐसा प्रतीत होता है कि इसने कुछ कर्षण प्राप्त कर लिया है। उपरोक्त कोड अभी भी खड़ा है, लेकिन मैं अपने मूल उत्तर में कुछ जोड़ना चाहता था।
जबकि मैं इसका उपयोग करना पसंद करता हूं mouseenterऔर mouseleave(मुझे कोड में क्या चल रहा है यह समझने में मदद करता है) इसके साथ .on()निम्नलिखित लिखने जैसा ही हैhover()
$(".selector").hover(function () {
//stuff to do on mouse enter
},
function () {
//stuff to do on mouse leave
});
के बाद से मूल प्रश्न पूछते हैं कि वे ठीक तरह से इस्तेमाल कर सकते हैं किया था on()के साथ hover(), मैंने सोचा कि मैं के उपयोग को सही हैं on()और यह आवश्यक जोड़ने के लिए नहीं मिला hover()समय में कोड।
EDIT DECEMBER 11, 2012
नीचे दिए गए कुछ नए उत्तर विस्तार से बताएंगे कि कैसे .on()काम करना चाहिए यदि divप्रश्न जावास्क्रिप्ट का उपयोग करके पॉपुलेटेड है। उदाहरण के लिए, मान लें कि आप divjQuery के .load()ईवेंट का उपयोग करते हैं , जैसे:
(function ($) {
//append div to document body
$('<div class="selector">Test</div>').appendTo(document.body);
}(jQuery));
इसके लिए उपरोक्त कोड .on()नहीं होगा। इसके बजाय, आपको अपना कोड इस तरह बदलना चाहिए:
$(document).on({
mouseenter: function () {
//stuff to do on mouse enter
},
mouseleave: function () {
//stuff to do on mouse leave
}
}, ".selector"); //pass the element as an argument to .on
यह कोड किसी .load()घटना के होने के बाद जावास्क्रिप्ट के साथ आबादी वाले तत्व के लिए काम करेगा । बस अपने तर्क को उचित चयनकर्ता में बदल दें।
mouseenterऔरmouseleaveके रूप में calebthebrewer ने सुझाव दिया,।