2012-01-16 12 views
11

के मामले में विशिष्ट div स्थिति के लिए jquery स्क्रॉल मेरे पास पूरे रूप में विशिष्ट त्रुटि संदेशों के साथ एक छिपा div है। फॉर्म सबमिट करने से पहले मैं यह सत्यापित करने के लिए एक वैध दिनचर्या चलाता हूं कि सभी आवश्यक फ़ील्ड कुछ पाठ से भरे हुए हैं या नहीं। यदि नहीं, वर्ग 'redAlert' वाला एक div टेक्स्ट फ़ील्ड के ठीक ऊपर दिखाई देता है। मैं भी त्रुटि संदेश प्रदर्शित होने पर संवाद विंडो को इस स्थिति के दाईं ओर स्क्रॉल करना चाहता हूं। मुझे पता है कि ऐसा करने के लिए बहुत सारे प्लगइन्स उपलब्ध हैं लेकिन मैं इसे सरल Jquery का उपयोग करके करना चाहता हूं। मैं ए की कोशिश कर रहा हूं ए) क्लास redAlert के साथ पहला दृश्य div खोजें, बी) इस div पर .offset() को कॉल करके अपनी स्थिति पाएं और फिर c) विंडो ऑब्जेक्ट पर .scroll() को कॉल करना लेकिन मुझे यह नहीं मिल रहा है काम करने के लिए। अगर मुझे कुछ याद आ रहा है या मेरा वाक्यविन्यास मान्य नहीं है तो मुझे बताएं (मुझे अक्सर Jquery के साथ वाक्यविन्यास त्रुटि के साथ संघर्ष करना पड़ता है)। नीचे मेरा कोड है। इसके अलावा - यह केवल दृश्य div (मानते हैं कि एक समय में केवल एक त्रुटि div है), क्या आप मुझे किसी विशेष वर्ग के साथ पहले दृश्य div खोजने के लिए चयनकर्ता प्रदान कर सकते हैं।त्रुटि और फोकस

var errorDiv = $('.redAlert:visible').attr("id"); 
var scrollPos = $("#"+errorDiv).offset(); 
//alert(scrollPosition); // This alert always says 'null', why ? 
$(window).scroll(scrollPos); 
//Also tried scrollTo(); 

अग्रिम धन्यवाद।

उत्तर

23
var errorDiv = $('.redAlert:visible').first(); 
var scrollPos = errorDiv.offset().top; 
$(window).scrollTop(scrollPos); 

डेमो:http://jsfiddle.net/Cjuve/2/

+0

परफेक्ट पीछे छोड़ दिया! आकर्षण की तरह काम करता है। बहुत धन्यवाद !! – user1006072

+0

बिल्कुल सही! धन्यवाद –

1

मुझे नहीं लगता कि बाहर काम अपने वाला है। कोड पर

देखो मैं

$('html, body').animate({ 
    scrollTop: ($('.error').first().offset().top) 
},500); 
संबंधित मुद्दे