2015-05-10 22 views
2

新手:在写jQuery的我自己jQuery的窗口滚动的代码格式问题

于是我运行到与具有jQuery的添加类,一旦窗口像素的一组量后向下滚动一个障碍。

要设置一个小背景,navbar目前有一些jQuery,当点击时切换类以创建一个淡入淡出效果。它是静态的,并在页面上稍微坐下来。我的问题是添加继续添加类的jQuery,当窗口向下滚动时,基本上添加了一个类,一旦静态导航不在视图中,就会将导航栏固定到页面的顶部。

我创建一个自定义子主题.js文件功能文件 - 这里是到目前为止的工作代码:

jQuery(document).ready(function($) { 
    $('.testimonials').bxSlider(); 

    $('.home .siteBrand').click(function(){ 
     $('.home .x-navbar').toggleClass("x-navbarOpen"); 
     $('.home .x-navbar').addClass("ani"); 
     $('.home .x-nav-wrap.desktop').toggleClass("siteBrandOpen"); 
     $('.home .x-nav-wrap.desktop').addClass("ani"); 
     $('.home .x-navbar .desktop .x-nav > li > a').toggleClass("menuOpen"); 
     $('.home .x-navbar .desktop .x-nav > li > a').addClass("ani"); 

    }); 
}); 

下面的代码就是从其他网站合作:

var $j = jQuery.noConflict(); 

$j(window).scroll(function() {  
    var scroll = $j(window).scrollTop(); 

    if (scroll >= 750) { 
     $j(".home .x-navbar").addClass("x-navbar-fixed-top"); 
    } else { 
     $j(".home .x-navbar").removeClass("x-navbar-fixed-top"); 
    } 
}); 

它只适用于将代码添加到主题的自定义Javascript功能,但我需要这一切都在儿童主题的自定义.js文件中,并在大量播放代码后,我不知道如何格式化此snippet使其在自定义文件中工作。我注意到的一个问题是,无论我在主题功能中添加窗口滚动代码,还是尝试在自定义文件中播放它,代码在自定义文件中的工作都会停止。

谁能告诉我我做错了什么?谢谢! :)

回答

0

这听起来像你需要注释掉...

//var $j = jQuery.noConflict(); 

...并替换$j$每一个参考。

“其他网站”可能包含2个版本的jQuery,并通过添加.noConflict()方法来解决此问题。由于我只能假设您的网站不是这种情况,因此您不应在复制/粘贴时包含该部分。 但是,如果您这样做了,则在“自定义文件”脚本中禁用了所有以前的引用$。这将解释“自定义文件”脚本如何停止工作。

有些耐人寻味:

// when all HTML is loaded on the page 
// once the DOM is ready (short version) 
$(function() { 
    // make sure these elements are exeactly selected as intended by using a developer toolbar (usually key F12) 
    var win = $(window), 
     testimonials = $('.testimonials'), 
     home = $('.home'), 
     sitebrand = home.find('.siteBrand'), 
     navbar = home.find('.x-navbar'), 
     navwrap = home.find('.x-nav-wrap.desktop'), 
     anchor = navwrap.find('.x-nav > li > a'); 

    // start initialising other libraries ... 
    testimonials.bxSlider(); 

    // ... or add events 
    sitebrand.click(function(){ 
     navbar.toggleClass('x-navbarOpen').addClass('ani'); 
     navwrap.toggleClass('siteBrandOpen').addClass("ani"); 
     anchor.toggleClass('menuOpen').addClass('ani'); 
    }); 

    win.scroll(function() {  
     navbar.toggleClass('x-navbar-fixed-top', win.scrollTop() >= 750); 
    }); 
});