我加載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 「你如何正確加載特定模板中的函數?