0

我收到的错误:未捕获的 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>
4

2 回答 2

0

你的代码看起来不错。

您是否尝试通过脚本注册检查 Jquery 是否正确导入到您的页面中?您使用的是哪个版本的 Jquery?最后 (2.0) 还是 1.9 ?

一些插件不适用于 2.0;您可以尝试导入 1.9 而不是 2.0。

于 2013-06-03T08:24:06.300 回答
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 是您的粘性元素。

你也可以使用像“ Sticky Plugin ”这样的jQuery-Plugin。

于 2013-06-03T08:48:23.477 回答