将jQuery代码段添加到Drupal网站

时间:2017-12-04 16:28:23

标签: jquery drupal drupal-7

我正在尝试将以下代码段添加到我的Drupal 7网站,但我不知道该把它放到哪里。我真的只想在一个特定的博客文章中,但如果它更容易申请整个网站,也可以。

$(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;
     }
   }
 });
});

Screenshot of website file structure

我以为我可以将它弹出到common.js文件中,但是当我这样做时,没有任何变化。这是代码:

$(document).ready(function(){
    // Remove scrollbar placed for non flicking carousel/no js version, show the thumbnails
    $("#carousels").css("height","auto").css("overflow","visible");
    $("#carousels .thumbs").css("display","block");

$(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;
     }
   }
 });
});
)};

有关如何添加此功能的任何想法?

1 个答案:

答案 0 :(得分:0)

您可以使用以下代码将JS文件添加到特定页面。因此,想象一下您要添加代码的页面是www.yourwebsite.com/node/9

  function yourmodule_page_alter(&$page) {
    $pathElements = explode('/', current_path());

    if (count($pathElements) == 2 && $pathElements[0] == 'node' && $pathElements[1] == '9') {
      global $base_url;
      $path = $base_url . '/' . drupal_get_path('module','yourmodule');

      drupal_add_js(
        $path . "/includes/js/yourcustom.js",
        array(
          'type' => 'file',
          'scope' => 'header',
        )
      );
    }
  }

您可以找到有关hook_page_alter() here的更多信息以及有关drupal_add_js() here的更多信息。