2009-07-20 6 views
27

मैं वर्तमान में क्लाइंट पर एक बड़ी तालिका बनाने के लिए jTemplates का उपयोग करता हूं, प्रत्येक पंक्ति में एक बटन होता है जो एक jQuery UI संवाद खोल देगा। हालांकि, जब मैं पृष्ठ को स्क्रॉल करता हूं और उन बटनों में से किसी एक पर क्लिक करता हूं, तो jQuery संवाद खुल जाएगा, लेकिन स्क्रॉल स्थिति खो जाती है और पृष्ठ शीर्ष पर वापस जाता है (अवरुद्ध करने और स्क्रीन से दिखाए जाने वाले वास्तविक संवाद के साथ)। क्या किसी ने देखा है या पता है कि इस समस्या का कारण क्या हो सकता है?एक jQuery UI संवाद पॉप अप करते समय मैं पृष्ठ के शीर्ष पर स्क्रॉलिंग को कैसे रोकूं?

धन्यवाद।

+0

इससे पहले देखा गया लेकिन फिर मैंने स्क्रॉल स्थिति खोने के लिए निम्न प्लगइन का उपयोग नहीं किया है http://plugins.jquery.com/project/ScrollTo –

उत्तर

66

क्या आप संवाद को पॉप करने वाले "बटन" को लागू करने के लिए एंकर टैग का उपयोग कर रहे हैं? यदि ऐसा है, तो आप क्लिक हैंडलर चाहते हैं जो झूठी वापसी के लिए संवाद खोलता है ताकि एंकर टैग की डिफ़ॉल्ट कार्रवाई न हो। यदि आप एक बटन का उपयोग कर रहे हैं, तो आपको यह सुनिश्चित करने की भी आवश्यकता होगी कि यह सबमिट नहीं करता है (हैंडलर से झूठी लौटकर) और पृष्ठ को पूरी तरह रीफ्रेश करें।

उदाहरण के लिए,

$('a.closeButton').click(function() { 
    $('#dialog').dialog('open'); 
    return false; 
}); 


<a class='closeButton'>Close</a> 
+1

मुझे कोणीय का उपयोग करते समय और कुछ बर्बाद करने के बाद भी यही समस्या थी घंटों में पाया गया कि [ng-click] (http://docs.angularjs.org/api/ng.directive:ngClick) का उपयोग करते समय href विशेषता से बचा जाना चाहिए। – Ritesh

+0

@ रितेश यहां वास्तव में इसके लिए कोई ज़रूरत नहीं है। मैंने हटा दिया है – tvanfosson

+0

ठीक है। यदि आप href विशेषता को हटाते हैं तो माउस कर्सर दिखाई नहीं देगा और आपको कुछ स्टाइल करने की आवश्यकता हो सकती है। कोणीय के मामले में यह कोई समस्या नहीं है, जो इसे स्वचालित रूप से संभालती है। – Ritesh

5

परिवर्तन इस

$('a.closeButton').click(function(e) { 
    e.preventDefault(); 
    $('#dialog').dialog('open'); 
}); 
+0

मैं उन्हें AJAX के माध्यम से सामग्री लोड करने के लिए उपयोग करता हूं और एक ही समस्या थी। जब मुझे एक पृष्ठ को स्क्रॉल किया गया और एक संवाद खोला गया, तो उसे बंद कर दिया गया पृष्ठ पृष्ठ पर वापस 'कूद' जाएगा। स्क्रॉल करने के लिए प्लगइन की आवश्यकता से अधिक शामिल था, उपरोक्त काम पूरी तरह से काम किया। –

+0

स्पॉट पर! यह लिंक के रूप में डिफ़ॉल्ट था! –

-2

की तरह अपने कोड आप कोशिश कर सकते हैं:

scrollTo(0, jQuery("body")); 
10

अपने बटन href="#" साथ एक HTML एंकर टैग के साथ काम करते हैं की जगह उदाहरण के लिए href href="javascript:;" या किसी भी अन्य विधि जिसे आप अक्षम करने के लिए उपयोग करते हैं href। स्क्रॉलिंग का कारण यह है कि href="#" आपके पृष्ठ के शीर्ष पर स्क्रॉल होता है।

+0

यह मेरी समस्या थी। मैंने वास्तव में अभी 'href' हटा दिया है। धन्यवाद! –