Wordpress;如何在header中使用jQuery插件


Wordpress; How use jQuery plugin in the header?

我收到的错误:uncaught TypeError: Object [Object Object] has no method 'sticky'

我正在转移一个网站,我已经制作到Wordpress。该网站正在使用粘头插件。情况是jquery处理程序不起作用。我尝试过无冲突,并将代码放在一个名为function.php的文件中。有人能指出一些好的方法吗?把这么少的代码放在一个单独的文件中似乎有点不必要。

提前感谢:)

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html <?php language_attributes(); ?>>
<head>
<meta http-equiv="Content-Type" content="<?php bloginfo('HTML_type');?>" charset="<?php bloginfo( 'charset' ); ?>" />
<title>
<?php wp_title('Het blinde konijn', true, 'rights'); ?>
<?php bloginfo('name');?>
</title>
<link rel="stylesheet" href="<?php bloginfo( 'stylesheet_url'); ?>" type="text/css" media="screen" />
<?php
    wp_deregister_script('jquery'); 
    wp_register_script('jquery', 'http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js', false);
    wp_enqueue_script('jquery'); 
?>
<?php wp_enqueue_script('stickyheader', get_template_directory_uri() . '/js/jquery-sticky.js', array('jquery')); ?>
<?php wp_head(); ?>
<script type="text/javascript">
var $j = jQuery.noConflict();
$j(document).ready(function(){
    $j("#header").sticky({topSpacing:0});
    resizeWindow();
    $j(window).bind("resize", resizeWindow);
        function resizeWindow(e) {
            contentHeight = $j(window).height() - $j("#header").height();
            $j(".zebra li").css("max-height", contentHeight);
        }
});
</script>
</head>

你的代码看起来不错。

您是否尝试检查Jquery是否正确导入您的页面与脚本注册?你使用的是哪个版本的Jquery ?Last (2.0) or 1.9 ?

一些插件不支持2.0;您可以尝试导入1.9而不是2.0。

wp_deregister_script('jquery'); wp_register_script('jquery', 'http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js', false); wp_enqueue_script('jquery');属于functions.php.

定义下面的类(当然你可以重命名它):

.sticky {  
        position: fixed;  
        width: 100%;  
        left: 0;  
        top: 0;  
        z-index: 100;  
        border-top: 0;  
    } 

将脚本修改如下:

$(document).ready(function() {  
  var stickyNavTop = $('.nav').offset().top;  
  var stickyNav = function(){  
    var scrollTop = $(window).scrollTop();  
    if (scrollTop > stickyNavTop) {   
      $('.nav').addClass('sticky');  
    } else {  
      $('.nav').removeClass('sticky');   
    }  
  };  
  stickyNav();  
  $(window).scroll(function() {  
    stickyNav();  
  });  
});

.nav是你的粘贴元素。

你也可以使用jQuery-Plugin,比如"Sticky Plugin"