5

के साथ माउसओवर को प्रतिस्थापित करना सबसे पहले मैं क्षमा चाहता हूं ... मैंने पहले इस प्रश्न को पोस्ट किया है, लेकिन मैंने इसे समझाने का एक बुरा काम किया है। मुझे निम्नलिखित जावास्क्रिप्ट में hoverIntent प्लगिंग करने में परेशानी हो रही है ... मुझे इसे mouseenter और mouseleave फ़ंक्शंस को प्रतिस्थापित करने की आवश्यकता है। बस स्पष्ट होने के लिए, मैं मदद मांग रहा हूं क्योंकि मैं जावास्क्रिप्ट सिंटैक्स के साथ बहुत अच्छा नहीं हूं। नीचे दूसरा कोड स्निपेट ऐसा लगता है जैसे इसे काम करना चाहिए, लेकिन यह कुछ भी नहीं करता है और इंटरनेट एक्सप्लोरर में पूरी तरह से मर जाता है।। होवरइन्टेंट

if (jQuery.browser.msie === true) { 
    jQuery('#top_mailing') 
    .bind("mouseenter",function(){ 
     $("#top_mailing_hidden").stop().slideDown('slow'); 
    }) 
    .bind("mouseleave",function(){ 
     $("#top_mailing_hidden").stop().slideUp('slow'); 
    }); 
} 

मैं अन्य ब्राउज़र के लिए निम्नलिखित का उपयोग कर रहा है, लेकिन यह इंटरनेट एक्सप्लोरर में काम नहीं कर रहा है।

$('#top_mailing').hoverIntent(
    function() { 
    $("#top_mailing_hidden").stop().slideDown('slow'); 
    }, 
    function() { 
    $("#top_mailing_hidden").stop().slideUp('slow'); 
    } 
); 
+2

क्या आपको आईई में कोई जेएस त्रुटियां मिल रही हैं? –

+1

आईई के साथ बस होवरइन्टेंट और jQuery 1.4.1 का परीक्षण किया। ठीक काम करता है। क्या यह आपके लिए बिल्कुल सही है? क्या यह अन्य ब्राउज़रों में काम कर रहा है? ; समारोह,() {$ ('# top_mailing') { ('धीमी') $ ("# top_mailing_hidden" stop()) slideDown।।} HoverIntent ( समारोह(): – user113716

+0

आप इस कोड का परीक्षण किया था। $ ("# top_mailing_hidden")। रोकें()। स्लाइडअप ('धीमा'); } ); – Brian

उत्तर

3

मुझे लगता है कि मुझे समस्या मिली है।

आप $('#top_mailing').hoverIntent(... दो बार कॉल कर रहे हैं। एक बार hoverintent_r5.js फ़ाइल के नीचे, और एक बार अपनी custom.js फ़ाइल में। जाहिर है आईई इसे पसंद नहीं करता है। एक या दूसरे से छुटकारा पाएं, और यह ठीक होना चाहिए।

शायद अपने सभी कोड को अपनी जेएस फ़ाइल में रखना बेहतर होगा। अन्यथा इसके बारे में भूलना आसान है।

संपादित करें: स्टॉप() समस्या से बचें।

$('#top_mailing').hoverIntent(
    function() { 
    $("#top_mailing_hidden").stop().animate({height:150},'slow'); 
    }, 
    function() { 
    $("#top_mailing_hidden").stop().animate({height:0},'slow'); 
    } 
); 

इस तरह, जब आप बंद करो और निर्देशों को बदलने की जरूरत है, यह हमेशा पता है कहाँ जाना है जाएगा:

मैं चेतन पसंद करते हैं। (0 और 150 उपरोक्त उदाहरण में।)

कृपया ध्यान दें कि इसके लिए top_mailing_hidden की आवश्यकता होगी clip:auto; overflow:hidden सेट।

चूंकि आप होवरइन्टेंट का उपयोग कर रहे हैं, इसलिए कॉल को रोकने के लिए कोई आवश्यकता नहीं हो सकती है, क्योंकि होवरइन्टेंट उन अनजान माउसओवर घटनाओं से बचने के लिए है।

विषय बंद थोड़ा :

अपने कार्यान्वयन के साथ मन में एक बात रखें। चूंकि यह भरने का एक रूप है, इसलिए उपयोगकर्ता संभवतः (बिना सोच के) अपने माउस को टाइपिंग शुरू करते समय रास्ते से बाहर ले जाएंगे। इससे फ़ॉर्म गायब हो जाएगा।

इस बात को ध्यान में रखते हुए, आप माउसआउट ईवेंट करने पर पुनर्विचार करना चाह सकते हैं। उपयोगकर्ता वैकल्पिक रूप से 'रद्द करें' या 'बंद करें' बटन के साथ फॉर्म सबमिट करते समय हमेशा इसे वापस स्लाइड कर सकता है।

+0

बहुत बढ़िया! चूंकि आप वास्तविक साइट को देख रहे हैं ... इसे आज़माएं - यदि आप ड्रॉपडाउन पर होवर करते हैं और फिर माउसआउट करते हैं। स्लाइडअप एनीमेशन पूर्ण होने पर अब माउस को अंदर और बाहर जल्दी से चलाएं। आपको इसे देखना चाहिए जहां इसे मध्य-एनीमेशन पकड़ा जाता है और उसके बाद फिर से होवर करने जा रहा है, यह नीचे नहीं गिर जाएगा या केवल भाग के रास्ते से नीचे गिर जाएगा। यही वह है जो मैं .stop() और .dequeue() कमांड के साथ ठीक करने का प्रयास कर रहा था लेकिन यह अभी भी एक समस्या है। कोई विचार? – Brian

+0

खुशी है कि यह काम कर रहा है। नए मुद्दे के बारे में, मैंने देखा है कि स्लाइडअप/स्लाईडडाउन या उस तरह के अन्य कार्यों का उपयोग करते समय, यदि आप स्टॉप() को कॉल कर रहे हैं तो यह अपने उचित गंतव्य का ट्रैक खो सकता है। मैं व्यक्तिगत रूप से उन का उपयोग नहीं करता। इसके बजाय मैं jQuery की एनिमेट() विधि का उपयोग करूंगा। इस तरह आप गंतव्य को कड़ी मेहनत कर रहे हैं। मैं आपको जवाब देने के लिए अपना उत्तर संपादित करूंगा कि मेरा क्या मतलब है। – user113716

+0

एलओएल! स्लाइडटाउन की तुलना में .animate फ़ंक्शन और भी गड़बड़ है। आप इसे साइट पर देख सकते हैं। – Brian