我在我的一个网站上有一个基于JQuery TouchTouch的画廊。当我把它叫做带有页面的照片列表时,它的工作原理非常完美。最近,我需要增加这个页面的新功能(网站是在线商店,我说的是带有产品的页面)。我需要加载相同的不同颜色的产品,而不离开页面(不同的URL仍然用于这个目的,但我需要尽快更改,因为重复影响SEO)。
使用AJAX,我正在加载有关产品的所有必要信息(包括照片URL),并且一切正常,除了JQTT图库:如果我不对第一次使用的选择器调用touchTouch(),在页面加载过程中--什么都不起作用(显然,没有插件提供的照片信息自动更新)。但是,当我第二次在相同的选择器上调用touchTouch()时,会出现带有按钮(箭头)的叠加,但是照片从未加载,只有加载的GIF才会永久显示。我已经在Mozilla FireFox和Google中检查过--同样的行为。顺便说一下,缩略图可以很好地加载,但是显示它们与插件没有直接关系,因为它们只是加载大照片的触发器。
第一件可能有帮助的事情,如我所设想的,是一个测试:调用touchTouch()不是在AJAX请求和DOM中插入新照片之后立即调用,而是在长时间延迟(例如,10秒)之后调用它,以确保这个问题不是插件的预装特性(如果有的话)或类似的特性中的问题。这没什么用。
然后我做了第二次测试:我删除了文档准备中的第一个touchTouch()调用(因此,插件在加载文档时不起作用),然后在更新照片之后进行这个调用。在本例中,插件运行良好。
因此,鉴于上述,我正在寻找解决方案,如何使JQTT插件工作后,照片列表更新。选择器总是相同的(我指的是用于每一张照片并在$( selector ).touchTouch()中调用的CSS类名)。
在网站上有一个真实的例子:bertoia/bertoia-1目前,一个产品的两个版本(带有黑色座椅和白色座椅的设计师座椅)可以通过两个链接(当前标记为厚厚的黑色下划线)获得。第二个链接以"bertoia-2“结束(而不是"bertoia-1")。
我编写了一个函数loadProductPage(productId)来加载第二个产品,而不遵循链接(您可以在页面源代码的底部看到代码)。如果您从控制台调用此函数-您将看到所描述的问题( DB中的第二个产品的id为6,因为第一个是5,因此,如果您打开第一个链接-调用loadProductPage(6))。
提前谢谢。
发布于 2015-05-03 01:04:18
这太可怜了,只剩下5天了,没有人帮我提这么简单的问题。我自己找到了解决办法。没有其他选择,而不是逐行探索JQuery Touch Touch JS代码,我注意到它在div中创建了带有类“占位符”的类“占位符”,其中包含id "galleryOverlay",不管它们是否是早期的创建者。我的意思是,它将新的占位符-div附加到现有的占位符中(在以前调用touchTouch()方法时),因此它破坏了脚本逻辑,并且由于使用了错误的占位符-div,它不能再加载新的照片。
解决方案是在更新照片和缩略图之前以及再次调用touchTouch()方法之前删除先前的占位符-div。对于JQuery,它是一条简单的代码行:
$('#gallerySlider .placeholder').remove();https://stackoverflow.com/questions/29886066
复制相似问题