我正在修改一个利用大型弹出窗口的Wordpress主题。尝试使用jquery为magnifica-popup设置data-mfp-src属性
我想使用空字符串替换锚标记中的URL,并使用URL填充data-mfp-src属性。这是为了防止中间点击在新标签中打开源图像,并隐藏状态栏中的URL(我知道它仍然可以在页面源中看到)。
我已经试过这样:
$('.photowall-item a').each(function(idx,link) {
$(this).attr('data-mfp-src', link);
$(this).attr('href', '');
});
我也试着设置使用$(this).attr('href')
,而不是链接数据MFP-SRC。
加载页面时的结果是,href被替换为空字符串,data-mfp-src被创建,但也包含一个空字符串,而不是原始的href值。如果我为href分配一个不同的值,data-mfp-src将获得相同的值。这打破了弹出窗口。
如果我将硬编码值分配给data-mfp-src,例如。 $(this).attr('data-mfp-src', 'someurl')
它可以工作,但显然无论您点击哪个缩略图,都会弹出相同的图像。同样奇怪的是,如果我在消隐href后立即执行alert($(this).attr('data-mfp-src'))
,则会返回data-mfp-src的正确值。但是当我在浏览器中查看生成的源代码时,价值已经消失。
你在哪里以及如何设置idx和链接? – 2014-11-08 07:37:16
如果你想防止中间点击在新选项卡中打开源图像,你只需返回false:$(this).on('click',function(){return false;});或$(this).on('click',function(e){e.preventDefault();}); – 2014-11-08 07:42:37
idx包含当前锚元素的索引,链接包含href。这些会自动传入。 – 2014-11-08 07:43:49