2016-06-04 17 views
6
$(document).ready(function(){ 
    $('body a').click(function(e){ 
    e.preventDefault(); 
    var goTo = $(this).attr('href').replace('#',''); 
    $('html, body').animate({ 
     scrollTop:$('a[name="'+goTo+'"]').offset().top 
    },1775); 

    window.location.hash = "#"+goTo; 

}); 

Tôi có chức năng này trong mã của mình để đạt được hiệu ứng cuộn trên trang của mình, tuy nhiên tôi nghĩ nó ảnh hưởng đến các liên kết hình ảnh của tôi. Khi tôi bấm vào một hình ảnh nó không liên kết bất cứ nơi nào. Tôi khá chắc chắn lỗi là một nơi nào đó ở đây nhưng cần một số trợ giúp tìm kiếm nó.Mã jQuery ảnh hưởng đến các liên kết hình ảnh HTML của tôi?

Cảm ơn.

Trả lời

5

Đảm bảo có một băm # trong href trước khi thay đổi bất kỳ thứ gì để liên kết bình thường vẫn hoạt động.

Một cách là kiểm tra hash tài sản của nguyên tố này

if(this.hash){ 
    e.preventDefault(); 
    // rest of code shown 
} 

cũng có thể sử dụng bộ chọn thuộc tính để lọc ra chỉ nối với # trong href

$('body a[href^=#]').click... 

một cuối giả định tất cả liên kết băm là tương đối và href bắt đầu bằng #

Các vấn đề liên quan