Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/366.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/88.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript jQuery无限卷轴和砖石问题_Javascript_Jquery_Tumblr_Jquery Masonry_Infinite Scroll - Fatal编程技术网

Javascript jQuery无限卷轴和砖石问题

Javascript jQuery无限卷轴和砖石问题,javascript,jquery,tumblr,jquery-masonry,infinite-scroll,Javascript,Jquery,Tumblr,Jquery Masonry,Infinite Scroll,我正在尝试创建一个tumblr主题,我正在使用用于jquery的Mashise和infinite scroll插件。砖石工程做得很好。然而,我根本无法让无限卷轴工作。以下是我的jQuery代码: <script type="text/javascript" src="../jquery-1.7.2.min.js"></script> <script type="text/javascript" src="../masonry.js"></script&g

我正在尝试创建一个tumblr主题,我正在使用用于jquery的Mashise和infinite scroll插件。砖石工程做得很好。然而,我根本无法让无限卷轴工作。以下是我的jQuery代码:

<script type="text/javascript" src="../jquery-1.7.2.min.js"></script>
<script type="text/javascript" src="../masonry.js"></script>
<script type="text/javascript" src="../jquery.infinitescroll.js"></script>
<script type="text/javascript">
$('document').ready(function(){
$('#content').imagesLoaded(function(){
$('#content').masonry({
itemSelector: '.post',
columnWidth: 260});
});
$('#content').infinitescroll({
    navSelector  : '#nav',
    nextSelector : '#nav a',
    itemSelector : '#content div.post',          
    },
    function( newElements ) {
    var $newElems = $( newElements );
    $('#content').masonry( 'appended', $newElems, function(){$newElems.fadeIn('slow');}   );
  });
});
</script>

$('document').ready(函数(){
$(“#内容”).imagesLoaded(函数(){
$(“#内容”).砌体({
itemSelector:“.post”,
列宽:260});
});
$('#content')。无限滚动({
导航选择器:'#导航',
下一个选择器:“#导航a”,
itemSelector:“#content div.post”,
},
函数(新元素){
var$newElems=$(新元素);
$('#content').mashise('added',$newElems,function(){$newElems.fadeIn('slow');});
});
});
这是我的HTML:

 <div id="content">
   {block:Posts}
   {block:Photo}
<div class="post">
<img src="{PhotoURL-250}" width="250" />
</div>
   {/block:Photo}
   {/block:Posts}
 {block:Pagination}
<div id="nav">{block:NextPage}<a href="{NextPage}"></a>{/block:NextPage}</div>
 {/block:Pagination}

{block:Posts}
{块:照片}
{/block:Photo}
{/block:Posts}
{块:分页}
{block:NextPage}{/block:NextPage}
{/block:Pagination}

非常感谢您的帮助。提前谢谢

*我还想指出的是,我缩短了js文件的URL,只是为了让文章看起来更好,在我的实际主题中,URL是正确的

这是我添加调试后控制台显示的内容(老实说,我不知道这意味着什么,但希望能有所帮助)

测试控制台
[“确定路径”,
数组[2]
0:“/page/”
1: ""
长度:2
__原型:数组[0]
]jquery.infinitescroll.js:171
[“Binding”,“bind”]jquery.infinitescroll.js:171
[“math:”,77644]jquery.infinitescroll.js:171
[“进入ajax”,
数组[2]
0:“/page/”
1: ""
长度:2
__原型:数组[0]
]jquery.infinitescroll.js:171
[“通过.load()方法使用HTML”]jquery.infinitescroll.js:171
[“内容选择器”,
​…​​
]jquery.infinitescroll.js:171
[“math:”,292644]jquery.infinitescroll.js:171
[“进入ajax”,
数组[2]
]jquery.infinitescroll.js:171
[“通过.load()方法使用HTML”]jquery.infinitescroll.js:171
[“Error”,“end”]jquery.infinitescroll.js:171
[“绑定”、“解除绑定”]

一些浏览器因只支持window.console的一个子集甚至根本不支持而臭名昭著。一些浏览器只支持console.info,而另一些浏览器则支持info、debug、log、warn、error,可能还有其他浏览器

在jquery.infinitescroll.js文件的第171行或附近,您会发现以下代码:

    // Console log wrapper
    _debug: function infscr_debug() {

        if (this.options && this.options.debug) {
            return window.console && console.log.call(console, arguments);
        }

    },
在Internet Explorer中,有时不定义console方法,除非启用了开发人员工具和/或脚本调试器功能;因此,在开发人员的计算机上运行良好的Web应用程序在禁用开发人员工具和/或脚本调试器的生产计算机上使用时可能会严重失败

作为一名开发人员,您的第一反应可能是从代码中删除console语句——或者从使用console.log的任何库中删除代码。更糟糕的是,您可能会试图避免使用控制台语句,而是使用警报

由于console.log语句对故障排除和调试过程非常有价值,因此可以使用一种技术来确保console语句不会干扰生产代码,即在出现此问题的所有网页上包含console对象的默认定义:

当包含在页面的
部分时,如果检测到window.console及其方法尚未定义,则该JavaScript将它们定义为空函数

<script type="text/javascript"> 
// override loggers to avoid throwing errors
if(window.console == null || window.console == undefined || !window.console) {
           console = { log: function() {}, info: function() {}, warn: function() {}, error: function() {}, trace: function() {}, debug: function() {} };
           //var fbscript = document.createElement("script");
           //fbscript.src = "https://getfirebug.com/firebug-lite-beta.js";
           //fbscript.setAttribute("type","text/javascript");
           //document.getElementsByTagName("head")[0].appendChild(fbscript);
} else if(!console.debug) {
         console.debug = function(text) { if(console.log) console.log("D: "+text); };
}
</script>
理想情况下,这可能是一个更好的解决方案,但我更喜欢前者,因为我知道它可以帮助我避免不在没有调试程序的浏览器中测试的陷阱


,具体地说,选项部分,更多细节。

你好CARZARD,考虑添加调试器输出和您可能从调试器中看到的错误消息。这将帮助社区更容易地引导您找到一个好的解决方案。祝你好运非常感谢。我会试试看。好的,当我打开控制台时,无限滚动就可以了,但当控制台没有打开时就不行了。知道为什么会这样吗?我还要将控制台中显示的所有内容添加到我的帖子中。什么浏览器?听起来您的代码中可能有一些控制台语句,当控制台关闭时,这些控制台语句是未定义的。在Internet Explorer中经常发生。我正在使用chrome。不过,我已经解决了这个问题,谢谢您的帮助。+1在
窗口中有一个有趣的题外话。console
:)
<script type="text/javascript"> 
// override loggers to avoid throwing errors
if(window.console == null || window.console == undefined || !window.console) {
           console = { log: function() {}, info: function() {}, warn: function() {}, error: function() {}, trace: function() {}, debug: function() {} };
           //var fbscript = document.createElement("script");
           //fbscript.src = "https://getfirebug.com/firebug-lite-beta.js";
           //fbscript.setAttribute("type","text/javascript");
           //document.getElementsByTagName("head")[0].appendChild(fbscript);
} else if(!console.debug) {
         console.debug = function(text) { if(console.log) console.log("D: "+text); };
}
</script>
     debug        : true,                        
             // enable debug messaging ( to console.log )