我正在尝试打开幻灯片显示在单个幻灯片中的单个图像,我已经使用jQuery成功完成,但问题仍然存在于悬停在图像上的元数据中。单击元时,页面会在同一选项卡中重定向用户,而不是新选项卡。
我尝试过使用$('.slide .meta')
获取元素元素,并使用event.preventDefault()
中的click()
阻止元素被点击。点击被识别但仍允许页面加载我认为很奇怪的网址。所以任何帮助将不胜感激!
以下是适用于图片的jQuery代码段:
<script>
// Make sure the page is loaded
// before running the script
$(document).ready(function() {
// Grab the gallary container's link
$('.sqs-gallery-container a').click(function(event) {
// Get the link element
var href = $(this).attr('class');
// Add the attribute '_blank' to open the
// generic link to that new tab
$(this).attr('target', '_blank');
// Grab the link
var link = $(this).attr('href');
// Check if the link isn't equal to '#'
if(link !== '#'){
// Open the page
window.open(link);
}
// Prevent the gallary from opening the link
// and let us do our own thing!
event.preventDefault();
});
}); // end ready
</script>
以下是从Chrome控制台复制的幻灯片库摘要:
https://gist.github.com/iwatakeshi/95fc070a668198566588
幻灯片的样本可以在这里找到:
https://help.squarespace.com/guides/using-the-slideshow-gallery-block
或实际的图库:
答案 0 :(得分:0)
您是否尝试将event.preventDefault()
移至块顶部?所以你的代码将成为:
<script>
$(document).ready(function() {
$('.sqs-gallery-container a').click(function(event) {
event.preventDefault(); // preventDefault first
var link = $(this).attr('href');
if(link != '#'){
window.open(link);
}
});
});
</script>
您还删除了一个未使用的变量href
。