检查是否使用jquery从其他页面输入

时间:2012-12-02 22:29:25

标签: jquery firefox

我正在创建一个使用jquery使用滚动效果的wordpress主题。

一切都很有效,直到您使用散列网址进入页面。

例如:

http://www.domain.com/#contact

它将转到页面底部。

这只发生在firefox而不是任何其他浏览器......甚至IE工作:D

反正。

正如我所说,一切都是100%有效,直到你从另一页进来。

如果我删除了滚动的javascript,那么它会转到相关的div.id但是当我添加代码时它会停止工作。

此情况也只发生在页面底部附近的目的地。

我已尝试在页脚中加载代码而不是标题,因为它在从wordpress创建div之前读取了jquery,但这并不好。它不起作用。

这是我创建的jquery。

jQuery(function(){

/***************************************************
        VERTICAL SCROLLING
***************************************************/
    jQuery('a#ublblogback').click(function(){ parent.history.back(); return false;});
    jQuery('#main a, a.internal, a.da-link,  #menu_nav a, .footer_inner a, #footerinternal').click(function(e){

        if (!jQuery(this).hasClass("thisisabloglink")) {
            e.preventDefault();
        }

        jQuery('div#main ul li:last-child').find('a').css('background','none');

        var $anchor = jQuery(this);
        var $section = jQuery($anchor.attr('href'));
        var topOffset = $section.offset().top;

        // Adjust extra offset if not primary section 
        if(!$section.parent('#wrapper').length){
            topOffset = topOffset - 0;
        }

        // Scroll page
        jQuery('html, body').stop().animate({
            scrollTop: topOffset
        }, 1500, 'easeInOutExpo');

    });

/***************************************************
        SCROLLING
***************************************************/
    jQuery(window).scroll(function(){

        var scrollOffset = jQuery(this).scrollTop();

        if(scrollOffset <= 125){
            jQuery('#logo').stop().animate({top: -scrollOffset}, 700);
            jQuery('#main').stop().animate({top: -scrollOffset + 155}, 50);
        }else{
            jQuery('#logo').stop().animate({top: -225}, 50);
            jQuery('#main').stop().animate({top: 0}, 50);
        }
    });
})(jQuery);

1 个答案:

答案 0 :(得分:0)

您是否有指向您网页的链接? - 可能是在初始站点访问时加载了这个,当你更改页面时,内容是通过ajax加载的,所以当你在页面加载时运行函数时,你在jquery中引用的dom元素就不存在了。 p>

一种可能的解决方案可能是替换你的.click - 这一行:

jQuery('#main a, a.internal, a.da-link,  #menu_nav a, .footer_inner a, #footerinternal').click(function(e){

与.on这样:

jQuery('body').on('click', '#main a, a.internal, a.da-link,  #menu_nav a, .footer_inner a, #footerinternal', function(e){

这将使代码运行,即使在最初运行jquery时文档正文中不存在这些元素。

我没有花很多时间使用wordpress,所以这在黑暗中有点刺痛