3

我在我的网站http://kellyannart.com/test/portfolios/上使用 BX Slider 。为 bx-slider displaySlideQty 设置了以下参数:4 无限循环:真

我正在使用的自定义 jQuery 是:

jQuery(".single_portfolio_item_archive a").click(function(evt) {
evt.preventDefault();
jQuery("#imageBox").empty().append(
    jQuery("<img>", { src: this.href})
);
});

我在 bx-slider 内总共有 5 个项目......但是因为无限循环设置为 true,它们会不断重复......问题是对于前 5 个项目(这是我拥有的实际项目数),如果我们点击图像然后 div id="imageBox" 加载相同的图像(这是完美的).. 但是当我们单击第 6 项(由于 infinteLoop 已设置为 true 而重复)时,大图像会以新的方式打开窗口而不是在 div id="imageBox" 中加载

此外,如果您单击前 5 个项目的“阅读更多”按钮,那么它会尝试将其 href 加载到 div id="imageBox" 中,但是当您单击第 6 个项目的“阅读更多”按钮时,它会表现完美(即在浏览器中打开链接)我不知道为什么会这样。有什么建议吗?提前致谢 :)

4

1 回答 1

3

我找到了造成这种情况的原因...首先我为投资组合页面启用/禁用了幻灯片放映选项,我为每个页面加载了自定义 jquery 代码..但我没有放置 if 语句来检查幻灯片放映是否已启用或禁用..所以第一个脚本应该在启用幻灯片时加载,第二个脚本应该在禁用幻灯片时加载......在我的情况下,无论幻灯片启用还是禁用,两者都在加载..其次我尝试了 document.ready()

<?php 
if( is_post_type_archive( 'portfolios' ) || is_taxonomy( 'styles' ) || is_taxonomy( 'colors' ) || is_taxonomy( 'textures' ) || is_taxonomy( 'years' ) ) : ?>
<script type="text/javascript">
jQuery(document).ready(function() {
jQuery(".single_portfolio_item_archive a").click(function(evt) {
evt.preventDefault();
jQuery("#imageBox").empty().append(
    jQuery("<img>", { src: this.href})
);
})
});
</script>
<?php endif; ?>

document.ready 确保脚本被应用于每个元素.. 甚至那些被 bx-slider 重复的元素。:)

于 2012-04-21T20:18:29.747 回答