我正在修改一个利用夸张弹出窗口的Wordpress主题。
我想用空字符串替换锚标记中的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')
设置data-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的正确值。但是当我在浏览器中查看生成的源时,该值就消失了。
答案 0 :(得分:0)
插入此代码的函数被调用两次 slaps额头
data-mfp-src和href第一次正确设置。第二次,分配给href的空字符串将覆盖在data-mfp-src中分配的正确URL。
我通过定义一个数组来修复它,然后测试它是否为空。如果它是空的,我用hrefs填充数组并继续。如果它不为空,我将先前分配的hrefs分配给data-mfp-src并清空hrefs。
像魅力一样。