Tôi có một bảng điều khiển trượt được thiết lập trên trang web của tôi.
Khi nó kết thúc hoạt hình, tôi đặt hàm băm như vậy
function() {
window.location.hash = id;
}
(đây là một cuộc gọi lại và id
được chỉ định trước đó).
Điều này hoạt động tốt, để cho phép người dùng đánh dấu bảng điều khiển và cũng để phiên bản không JavaScript hoạt động.
Tuy nhiên, khi tôi cập nhật hàm băm, trình duyệt sẽ nhảy đến vị trí. Tôi đoán đây là hành vi dự kiến.
Câu hỏi của tôi là: làm thế nào tôi có thể ngăn chặn điều này? Tức là làm thế nào tôi có thể thay đổi hàm băm của cửa sổ, nhưng không có trình duyệt cuộn đến phần tử nếu hàm băm tồn tại? Một số loại event.preventDefault()
của điều?
Tôi đang sử dụng jQuery 1.4 và plugin scrollTo .
Cảm ơn nhiều!
Cập nhật
Đây là mã thay đổi bảng điều khiển.
$('#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()
:)