我目前正在Wordpress网站上的一个图库页面上工作,点击图库链接会通过jQuery load()
函数从永久链接中获取图片。
然而,在重复点击所有图库链接的同时,有时候图像根本不会加载,即使其他尝试成功也是如此。当我查看控制台时,我发现下面jQuery函数中的某个地方可能会返回一个" undefined"在网址中,导致404错误。
HTML:
<article class="post">
<a href="#" data-href="<?php the_permalink(); ?>" class="meta">
<p>
<span class="category"><?php foreach((get_the_category()) as $category) { echo $category->cat_name . ' '; } ?></span>
<span class="title"><?php echo get_the_title(); ?></span>
</p>
</a>
</article>
JS:
$("#gallery").fadeIn(function() {
var permalink = $(event.target).attr("data-href");
$(this).append("<div class='slides'></div>")
$("#gallery .slides").delay(1000).load( permalink + " img", function() {
$("#gallery .slides img").wrap("<div class='slide'></div>");
$(".slide").each(function() {
var src = $(this).find("img").attr("src");
$(this).css({
"background": "url(" + src + ")"
});
$(this).empty();
});
$('.slides').anyslider();
});
});
现场演示:trivecs.com/work
答案 0 :(得分:1)
永久链接未定义,因为它在#gallery fadeIn事件的范围内,将其移到外面并且您将不会遇到麻烦:
$(document).on('click', ".page-id-5 .post .meta", function(event) {
var permalink = $(this).data("href"); // move it here
$("#gallery").fadeIn(function() {
//var permalink = $(event.target).attr("data-href");
答案 1 :(得分:0)
event
未定义event.target
可能不是您想要的元素。您不想在点击活动的a.meta链接上执行此操作吗?
$("a.meta").click(function() {
var permalink = $(this).attr("data-href");
$('#gallery').append("<div class='slides'></div>")
$("#gallery .slides").delay(1000).load( permalink + " img", function() {
$("#gallery .slides img").wrap("<div class='slide'></div>");
$(".slide").each(function() {
var src = $(this).find("img").attr("src");
$(this).css({
"background": "url(" + src + ")"
});
$(this).empty();
});
$('.slides').anyslider();
});
});