2014-11-08 42 views
1

我正在修改一個利用大型彈出窗口的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的正確值。但是當我在瀏覽器中查看生成的源代碼時,價值已經消失。

+0

你在哪裏以及如何設置idx和鏈接? – 2014-11-08 07:37:16

+0

如果你想防止中間點擊在新選項卡中打開源圖像,你只需返回false:$(this).on('click',function(){return false;});或$(this).on('click',function(e){e.preventDefault();}); – 2014-11-08 07:42:37

+0

idx包含當前錨元素的索引,鏈接包含href。這些會自動傳入。 – 2014-11-08 07:43:49

回答

0

此代碼插入到被調用的函數兩次拍打額頭

數據MFP-SRC和HREF被正確設定的第一次。第二次,分配給href的空字符串將覆蓋data-mfp-src中分配的正確URL。

我通過定義一個數組來修復它,然後測試它是否爲空。如果它是空的,我使用hrefs填充數組,然後繼續。如果不是空的,我將先前分配的hrefs分配給data-mfp-src並清空hrefs。

工程就像一個魅力。