Jquery回调脚本执行但不起作用

时间:2011-01-25 18:26:09

标签: javascript jquery quicksand

我从堆栈溢出中获得了很多帮助,将这个页面带到了它的功能所在的位置,它几乎就在那里,我只是不是一个jQuery专家。工作示例:

http://www.metropoliscreative.com/jake_test/test1.html

我正在使用Galleriffic(动态图库jQuery插件)和Quicksand(jQuery过滤插件)。

如果单击缩略图,它们将在大窗格中正确加载。如果选择项目类型或行业,它将根据某些数据类型对这些缩略图进行排序。

然而,问题是,一旦你对它们进行排序,Galleriffic功能就会停止工作。所以为了纠正这个问题,我在流沙初始化中包含了另一个galleriffic调用。因此,一旦流沙完成,它将重置galleriffic。

但是,此时我从galleriffic收到错误,我不知道为什么。我调用的方式与页面加载时调用的方式完全相同,然后就可以了。

2 个答案:

答案 0 :(得分:2)

当我查看您的页面来源时,我在第295行(就在问题区域之前)看到了一个不应该存在的“d”。也许这就是原因,你的代码没有被执行。

答案 1 :(得分:0)

由于您的第二次.galleriffic()来电,似乎是在抛出错误。我得到的错误是Cannot convert 'imageData' to object。这似乎是因为当您切换到(例如)项目类型 - >手册包gallerific尝试根据数据属性将当前图像ID设置为0。但是,似乎quicksand搞砸了数据数组,导致gallerific在第二次调用时看不到任何元素(也就是图像)。我认为quicksand导致问题,可能是因为它没有正确删除/添加图像。如果您查看this示例,删除图像的代码如下:

$('#removeImageByIndexLink').click(function(e) {
    if (!gallery.removeImageByIndex(5))
        alert('There is no longer an image at position 5 to remove!');

    e.preventDefault();
});

然而,似乎quicksand仅使用.remove()来摆脱图像。现在,我查看了removeImageByIndex()的代码,似乎gallerific保留了有关其使用的图像的信息缓存,当.remove()quicksand调用时,这些信息不会更新}。

tldr; Quicksand错误地删除了图像,并且没有更新更新。

如何解决?好吧,一个选择是尝试重写你的流沙脚本的删除和添加部分,以了解画廊。另一种方法是将流沙的删除部分重写为仅HIDE元素而不是删除它们(即设置display:none;而不是.remove())。

我希望这会有所帮助,这就是我能想到的一切。