2016-10-07 2 views
0

У меня есть следующий код, который позволяет плавно прокручивать для навигации по страницам, которую я просто скопировал, откуда-то не помню. Так как гладкая прокрутка происходит на привязном ярлыке, кликнуть, он перепутал Bootstrap Javascript для Tab, который также использует метки привязки (Это то, что я сделал, надеюсь, что я прав).Smooth scrolling javascript code messing with Bootstrap Tab code

$(function() { 
$('a[href*="#"]:not([href="#"])').click(function() { 
    if (location.pathname.replace(/^\//,'') == this.pathname.replace(/^\//,'') && location.hostname == this.hostname) { 
     var target = $(this.hash); 
     target = target.length ? target : $('[name=' + this.hash.slice(1) +']'); 
     if (target.length) { 
      $('html, body').animate({ 
       scrollTop: target.offset().top 
      }, 1000); 
      return false; 
     } 
    } 
}); 
}); 

Теперь я не понимаю, это $('a[href*="#"]:not([href="#"])') части коды, может кто-то пожалуйста, поставить некоторый свет на то, что это делает? Также как исправить это, чтобы вышеуказанная функция срабатывала только на На привязке на странице привязки?

ответ

1
a[href*="#"]:not([href="#"])

Над селектором ушел цель на в тег HREF = "# smthing". Таким образом, по умолчанию его вкладка активизируется.

Вместо этого увеличение css специфичность. Использование родительского класса как

$(function() { 
    $('.myParent a[href*="#"]:not([href="#"])').click(function() { 
    if (location.pathname.replace(/^\//,'') == this.pathname.replace(/^\//,'') && location.hostname == this.hostname) { 
     var target = $(this.hash); 
     target = target.length ? target : $('[name=' + this.hash.slice(1) +']'); 
     if (target.length) { 
     $('html, body').animate({ 
      scrollTop: target.offset().top 
     }, 1000); 
     return false; 
     } 
    } 
}); 
}); 
+0

Как это сделать, не будучи конкретно, между страницами и родителей? – StudentX