【问题标题】:Jquery .click does not work in combination with PrettyPhotoJquery .click 不能与 PrettyPhoto 结合使用
【发布时间】:2016-09-15 11:46:08
【问题描述】:

PrettyPhoto图库脚本。

我只想加载每个画廊的前 3 张照片。如果用户开始查看这些第一张照片,脚本必须加载该画廊的所有照片。

<a href="photo_1.jpg" data-bid="6780" data-rel="PrettyPhoto[g1a][1]"><img src="thumbnail_1.jpg" />
<a href="photo_2.jpg" data-bid="6781" data-rel="PrettyPhoto[g1a][1]"><img src="thumbnail_2.jpg" />
<a class="loadimgs" data-gallery="1" href="photo_3.jpg" data-bid="6782" data-rel="PrettyPhoto[g1a][1]"><img src="thumbnail_3.jpg" />

如上所示,photo_3.jpg 的链接包含 class="loadimgs"。当用户点击第三个缩略图时,PrettyPhoto 必须显示完整图像,同时 Jquery 必须向 more-images.php 发送请求,以将该图库的所有链接/缩略图加载到容器中.load_more_images

<div style="display:none" class="load_more_images" id="1"></div>

不幸的是,它不起作用。不工作意味着

$(document).on('click',".loadimgs", function()

完全被忽略。 当我单击第三个缩略图时,PrettyPhoto 会打开一张全尺寸照片,但没有请求 more-images.php 文件。浏览器控制台没有显示任何错误,什么都没有。

.click 是否可能无法与 PrettyPhoto 结合使用?如果是这样,您能否建议任何其他方式如何在用户单击第三个缩略图时调用 more-images.php 文件?

$("a[data-rel^='PrettyPhoto[g1a]']").PrettyPhoto({
allow_resize:0,
deeplinking:false
});

$(document).on('click',".loadimgs", function(){
var gallery_id=$(this).attr("data-gallery");
$('.load_more_images').load("/more-images.php?gallery_id="+gallery_id");
alert("It works");
});

【问题讨论】:

  • 请问你能提供一个小提琴吗?

标签: jquery prettyphoto


【解决方案1】:

用这个替换你附加事件的方式:

$('.loadimgs').click(function(ev){
    var gallery_id=$(this).attr("data-gallery");
    $('.load_more_images').load("/more-images.php?gallery_id="+gallery_id);
    alert("It works" + gallery_id);
});

在最后一个括号之前,您还有一个导致失败的引用: $('.load_more_images').load("/more-images.php?gallery_id="+gallery_id");

【讨论】:

  • 哦,如果 a 标签没有关闭,您还需要关闭它们(在附加的代码中它们没有关闭),并将 .PrettyPhoto 替换为 .prettyPhoto。
  • 谢谢!这解决了所描述的问题,但产生了一个新问题。 PrettyPhoto 忽略新加载的图像并且不显示它们。需要一些方法如何将加载的图像推送到前 3 个图像。必须提交一个新问题。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-09-09
  • 2022-01-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多