Click事件停止工作

时间:2013-01-11 19:57:53

标签: javascript jquery

我希望有人可以帮助我,我对这个问题有些不满,因为我一直在解决这个滚动行为的其他问题,我正试图在这个site上实现...您看到我的子菜单(左侧)在您滚动时跟随窗口位置,或者您可以单击子菜单上的任何选项将触发动画,似乎问题是每次我再次单击时它不会起作用,直到我重新点击它,它才会起作用......

这是我的代码

变量

var startDistance = 210;
var $scrollingDiv = $("#sub-menu");
var position = $("#footer").position();
var height = $("#sub-menu").height();
var pos = position.top - (height + 460);

这在用户和动画滚动

之间有所不同
$("body,html").bind("scroll mousedown DOMMouseScroll mousewheel keyup", function(e){
            if ( e.which > 0 || e.type === "mousedown" || e.type === "mousewheel"){
                 if($(window).scrollTop() > startDistance && $(window).scrollTop() < pos) {

                    $scrollingDiv.stop().animate({
                        paddingTop: ($(window).scrollTop() - 75) + "px"
                    }, 'slow');

                }
                if($(window).scrollTop() == 0) {
                    $scrollingDiv.stop().animate({
                        paddingTop: 0
                    }, 'slow');
                }
            }
     });

点击行为

$("#sub-menu ul li a").live('click', function(ev) {
            var $anchor = $(this);
            console.log($anchor.attr('href'));
            $('html, body').stop().animate({
                scrollTop: $($anchor.attr('href')).offset().top
            }, 1500,'easeInOutExpo', function() {
                $scrollingDiv.stop().animate({
                    paddingTop: ($($anchor.attr('href')).offset().top - 556) + "px"
                }, 'slow');
            });
        event.preventDefault();
    });

这可能是最愚蠢的事情,但是我一直在看我的屏幕过去一小时没有能够意识到正在发生的事情。

编辑:我也发布了我的滚动码行为,因为我觉得它可能是一个全局问题而且不仅仅与我的点击代码相关

提前谢谢!

1 个答案:

答案 0 :(得分:3)

[22:00:25.137] ReferenceError: event is not defined @ http://altivamedia.com/pruebas/romulos/wp/wp-content/themes/romulos/_/js/functions.js:45

您不小心写了event而不是ev

        });
    event.preventDefault();
});

由于尚未定义event,因此会引发ReferenceError。只需使用正确的变量:

        });
    ev.preventDefault();
});

备注

要自行查找此类错误,请使用浏览器的错误控制台。