मेरी वेबसाइट पर एक स्लाइडिंग पैनल स्थापित है।
जब यह एनिमेशन समाप्त हो गया, तो मैंने हैश को इस तरह सेट किया
function() {
window.location.hash = id;
}
(यह एक कॉलबैक है, और id
पहले सौंपा गया है)।
यह अच्छा है, उपयोगकर्ता को पैनल को बुकमार्क करने की अनुमति देता है, और गैर जावास्क्रिप्ट संस्करण के लिए भी काम करता है।
हालाँकि, जब मैं हैश अपडेट करता हूं, तो ब्राउज़र स्थान पर कूद जाता है। मुझे लगता है कि यह अपेक्षित व्यवहार है।
मेरा सवाल है: मैं इसे कैसे रोक सकता हूं? यानी मैं विंडो के हैश को कैसे बदल सकता हूं, लेकिन अगर हैश मौजूद है तो ब्राउज़र को तत्व में स्क्रॉल नहीं करना चाहिए? किसी event.preventDefault()
तरह की बात?
मैं jQuery 1.4 और स्क्रॉलटो प्लगइन का उपयोग कर रहा हूं ।
बहुत धन्यवाद!
अपडेट करें
यहाँ वह कोड है जो पैनल को बदलता है।
$('#something a').click(function(event) {
event.preventDefault();
var link = $(this);
var id = link[0].hash;
$('#slider').scrollTo(id, 800, {
onAfter: function() {
link.parents('li').siblings().removeClass('active');
link.parent().addClass('active');
window.location.hash = id;
}
});
});
event.preventDefault()
:)