2013-03-07 88 views
1

在一個畫廊我想阻止某些縮略圖通過燈箱擴大他們的原始圖片。 圖像沒有ID,只有一個類。所有鏈接都從數據庫的表中讀取。阻止與jquery的特定鏈接

$(document).ready(function(){ 
      if($('.product-image').attr('target', 'blockedpath')) { 
       $('.product-image').click(function(e) { 
        e.preventDefault(); 
        return false; 
       }); 
      } 
     }); 


<li class="product"> 
      <div class="productInfo"> 
       <h3>@i.ToString()</h3> 
       <a href="@Href("~/Images/2013/" + i.ToString() + ".jpg")" rel="lightbox" class="link"> 
        <img class="product-image" src="@Href("~/Images/2013/Thumbnails/" + i.ToString() + ".jpg")" alt="foto" /> 
       </a> 
      </div> 
     </li> 

如果我使用它,所有縮略圖都會被阻止。我怎樣才能防止被封鎖的圖片,並避免阻止縮略圖。 是否有可能將所有應該被阻擋的圖像保存在數組中並循環訪問該數組以阻止這些縮略圖?

+0

你應該使用'data'屬性,而不是'target'。 – strah 2013-03-07 10:01:08

+0

通過使用此代碼實際上,您正在強制將'target'設置爲'blockedpath',爲所有'.product-image'' – Peeyush 2013-03-07 10:20:23

+0

添加了html/Razer標記。 – Marco 2013-03-07 10:26:56

回答

5

您是第一次檢查是否存在任何圖像target = blockedpath,然後阻止全部圖像。

你可以使用這樣的事情:

$(document).ready(function(){ 
    // Select elements with the product-images class, that also 
    // have a target attribute with a value equal to 'blockedpath' 
    // Bind a click event to the matched elements 
    $('.product-image[target="blockedpath"]').click(function(event) { 
     event.preventDefault(); 
     return false; 
    }); 
}); 
+0

它以某種方式不起作用。我想發佈我的Razer標記,但編輯會吞噬除了1行c#代碼之外的所有內容。每張圖片都可以點擊 – Marco 2013-03-07 10:18:35

+0

我很懶,只是用foreach循環實現了一個if子句,在創建標記之前迭代所有文件名以將其過濾掉。 – Marco 2013-03-07 10:36:08