2013-11-04 74 views
0

我正在使用砌體並使用jQuery將每個網格元素鏈接到完整大小的圖像(將鏈接添加到整個div)的投資組合網站上。使用jQuery禁用div中的鏈接

某些網格元素不應該鏈接到任何地方,所以我想知道是否有可能刪除這些元素的鏈接而不接觸原始代碼。他們每個人都有自己的班級,可以用作選擇器。

我雖然刪除的()空(),但它不工作,因爲我不想刪除DIV,我只是想要停止了與它相關的鏈接。

代碼

對不起,它的一個巨大的文件,其中的HTML是通過JS打造爲好。下面是對於那些有時間在他們的手完整的文件要經過它:http://jsbin.com/UMILIXi/1/edit?js,output

創建元素模板的一部分是在這裏:

//ITEM IMAGE TEMPLATE 
       item: '<% if(item.gridInternalLink){ %>\ 
       <div class="' + o.itemClass + ' gridTextBox gridInternalLink" style="width:<%= width %>px;">\ 
       <p><%= item.gridTextBox %></p>\ 
       <% }else if(item.gridExternalLink){ %>\ 
       <div class="' + o.itemClass + ' gridTextBox gridExternalLink" style="width:<%= width %>px;">\ 
       <p><%= item.gridTextBox %></p>\ 
       <% }else if(item.gridNoLink){ %>\ 
       <div class="' + o.itemClass + ' gridTextBox gridNoLink" style="width:<%= width %>px;">\ 
       <p><%= item.gridTextBox %></p>\ 
       <% } else if(item.gridVideoLink){ %>\ 
       <div class="' + o.itemClass + '" style="width:<%= width %>px;">\ 
       <%= item.gridVideoLink %>\ 
       <% }else{ %>\ 
       <div class="' + o.itemClass + '" style="width:<%= width %>px;">\ 
       <img src="<%= item.image %>" width="<%=width%>"/>\ 
       <div class="' + o.itemInfoClass + '"><div class="' + o.itemTextClass + '">\ 
       <% if(item.link){ %><a href="<%= link %>" rel="<%= rel %>" title="<%= title %>"><% } %>\ 
       <div class="text-wrapper">\ 
       <% if(item.cat){ %>\ 
       <h3 class="post-info"><%=item.cat%></h3>\ 
       <% } %>\ 
       <h2><%= item.title %></h2></div><div class="view-gallery">\ 
       <% if(item.imgnum){ %><span class="item-num"><%= item.imgnum %></span><% } %>\ 
       <span class="grid-gallery-icon<%= additionalClass %>"></span><span class="view-text"><%= viewText %><span class="more-arrow">&raquo;</span></span>\ 
       </div><% if(item.link){ %></a><% } %>\ 
       </div></div>\ 
       <% } %>\ 
       </div>' 
+5

請將您的HTML和JS代碼添加到問題中。 –

+1

發佈HTML至少 – Popnoodles

+0

已添加代碼。 :) –

回答

0

你可以簡單地阻止鏈接的默認操作:

$('#container').on('click', '.linkClass', function(e){ 
    e.preventDefault(); 
}); 
+0

我想到了這一點,但後來我會禁用所有元素的鏈接。我只需要禁用某些元素的鏈接。 –

+0

@domdev - 在你的問題中你說*「他們每個人都有自己的類,可以用作選擇器」* - 我假設你可以用它作爲選擇器。 (替換'.linkClass') – ahren

+0

對不起,你是對的。我剛剛給了它一個鏡頭,但不幸的是它沒有工作。我會繼續嘗試 - 儘管感謝您的回覆。對此,我真的非常感激。 –

0

使用此代碼刪除HREF爲DIV

$('.linkClass').attr('href','#'); 
+0

我試過這個,但不幸的是它沒有工作。謝謝你! –

0

這可能有助於

$('div.yourClassName').append('<div id="over" style="position: absolute;top:0;left:0;width: 100%;height:100%;z-index:2;opacity:0.4;filter: alpha(opacity = 50)"></div>'); 
0

的地步,你是有條件地將錨標記,你能不檢查gridNoLink財產所有權以及並相應地添加錨點或跨度?

喜歡的東西:

<% if(item.gridNoLink) { %> 
    <span> 
<% } else if(item.link){ %> 
    <a href="<%= link %>" rel="<%= rel %>" title="<%= title %>"> 
<% } %>\ 
<div class="text-wrapper">\ 
...desired markup 
</div> 
<% if(item.gridNoLink) { %> 
    </span> 
<% } else if(item.link){ %> 
    </a> 
<% } %>\ 

這種方式不需要額外的腳本將被要求在沒有聯繫到處理的瓷磚。此外,它將確保您不會終止使用懸停標記來更改懸停時的光標,但不會在點擊時觸發任何操作。