我加载jQuery和在functions.php文件我main.js文件添加jQuery函数到一个特定的模板,简码为这样:在WordPress
function my_scripts() {
if (!is_admin()) add_action("wp_enqueue_scripts", "my_jquery_enqueue", 11);
function my_jquery_enqueue() {
wp_deregister_script('jquery');
wp_register_script('jquery', "http" . ($_SERVER['SERVER_PORT'] == 443 ? "s" : "") . "://ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js", false, null);
wp_enqueue_script('jquery');
}
wp_enqueue_script('main-js', get_template_directory_uri() . '/js/main.js', array('jquery'), '12303', true);
}
add_action('wp_enqueue_scripts', 'ninjatrader_scripts');
这里所有好。我在main.js文件中有一个函数,我只想调用特定的页面模板,并试图通过shortcode来做到这一点,但它总是返回函数未定义。 这里是位于main.js功能:
function menu_sticky() {
var div_top = $('#hero-menu-row-anchor').offset().top;
var navCont = $('#hero-menu-row')
var nav = $('#menu-blognav');
var logo = '<li id="hero-menu-logo"><a href="http://ninjatrader.com" target="_self">NinjaTrader</a></li>';
var visible = false;
$(window).scroll(function() {
if ($(this).scrollTop() > div_top) {
navCont.addClass("fixed");
if(!visible) {
nav.prepend(logo);
visible = true;
}
} else {
navCont.removeClass("fixed");
if(visible) {
$('#hero-menu-logo').remove();
visible = false;
}
}
});
}
和functions.php中
function sticky() {
echo '<script>jQuery(function(){ menu_sticky(); });</script>'
}
add_shortcode('stickynav', 'sticky');
短码当我把它放在一个模板,它返回“的ReferenceError:未定义menu_sticky “你如何正确加载特定模板中的函数?