非常奇怪的jquery问题

时间:2011-10-19 22:47:24

标签: ajax jquery jquery-masonry

我正在尝试在页面加载上运行一个函数,但它无法正常工作。我已将它添加到我能想到的每个地方,并且 ONLY 的工作原理是:

$("html").mousemove(function(event) {
    $('#project_thumbs_container').masonry('reload');
});

我尝试过延迟,但我采用了上面的hacky方法:(

有没有人对我的功能无法运行的原因有任何建议?

更新:

我正在使用jonery的砌体。我的问题是当我加载一个使用带有ajax的砌体的页面时,它会将它们显示在一个列中。 $('#project_thumbs_container').masonry('reload');正确地重置了它,但它只能使用上面的mousemove方法。

4 个答案:

答案 0 :(得分:1)

听起来你有两个问题之一:

1)格式错误的HTML导致错误,在使用文档onReady语法时不允许代码正确解析:$(function(){...});

2)砌体可能是异步加载,这意味着“onReady”回调可能不是您想要使用的回调。您的Ajax调用看起来更像是这样:

$('body').load('index.html', function() {
  $('#project_thumbs_container').masonry();
});

答案 1 :(得分:1)

除非有人有更好的答案,否则我会在ajax调用完成后将代码放入我的fadeIn();代码段中:

this.fadeIn('slow', function() {
  $('#project_thumbs_container').masonry('reload');
});

似乎工作。

答案 2 :(得分:0)

尝试这样的事情。

$(document).ready(function(){
    $('#project_thumbs_container').masonry('reload');
}); 

您可以将此代码放在页面的任何位置,只要已经加载了依赖项,它就可以正常工作。

答案 3 :(得分:0)

将你的功能放在这个

$(document).ready(function() {
  // Handler for .ready() called.
  // your function 
});

当您的页面加载时,该函数将执行