函数未定义

Function is undefined

本文关键字:未定义 函数      更新时间:2023-09-26

我对javascript真的很陌生,所以交易如下:

我正试图在我的wordpress主题中实现一个阅读位置指示器。因此,我在所有脚本标记附近的页脚后面直接钩住了一个div,因为这个位置栏应该粘在屏幕的底部。然后我尝试实现某种custom.js,它通常会根据用户向下滚动的距离来改变位置指示器的宽度。但这失败了,我不知道为什么,甚至我意识到这将是我基于缺乏JS经验而犯下的一些重大错误。

每次控制台只发送"参考错误:xyz未定义"

这是代码,也可以在jsfiddle上检查(尽管它可能有点无用,但由于脚本在wordpress环境中运行,无法在那里进行模拟)。

HTML/PHP挂钩标记:

add_action('wp_footer', 'tg_wp_footer');
function tg_wp_footer() { 
if ( is_singular() ) echo '<div id="reading-position-indicator"></div>';
} 

JS标记:

if( '"is_singular && reading_indicator"' ){
    var reading_content = $the_post.find( '.entry' );
    if( reading_content.length > 0 ){
        reading_content.imagesLoaded(function() {
            var content_height  = reading_content.height();
                window_height   = $window.height();
            $window.scroll(function() {
                var percent         = 0,
                    content_offset  = reading_content.offset().top;
                    window_offest   = $window.scrollTop();
                if (window_offest > content_offset) {
                    percent = 100 * (window_offest - content_offset) / (content_height - window_height);
                }
                jQuery('#reading-position-indicator').css('width', percent + '%');
            });
        });
    }
}

CSS标记:

#reading-position-indicator {
display: block;
height: 4px;
position: fixed;
bottom: 0;
left: 0;
background: #FF8500;
width: 0;
z-index: 9999;
max-width: 100%;
}

https://jsfiddle.net/cn49ubr6/1/

这个栏应该只出现在博客上,所以我尝试使用"is_singular"。如何定义以避免ReferenceError?Atm控制台表示未定义"$the_post"。在此之前,当我尝试在第一行中不使用"时,我得到的错误是is_singular未定义。

谨致问候!

Jordan,你说得对。在使用所有开发工具(chrome、firebug、firefoxnightly)检查对象元素后,我发现firebug是查找事件的最佳解决方案。首先,我不得不更改声明,因为我将酒吧从另一个主题迁移到了我的主题。所以我的HTML标记与其他主题完全不同。在那之后,我遇到了三个jQuery插件,它们是让事情正常工作所必需的,因为它们在javascript中使用过。最后但并非最不重要的是,我必须为计算找到合适的html元素。这似乎有效,但我会进一步测试。

我只是写,因为我想知道为什么控制台在我写时给我一个未定义的错误

if (is_singular ()) { 

而如果我写

if ('is_singular()') {

整件事都活了?

谢谢!:-)