2013-10-19 79 views
2

我的HTML代碼是JQuery的點擊裏面<a>標籤不工作

<a href='someValidLink' class="link"> 
    <img src='imageUrl'/> 
</a> 

和JS腳本是

$('.link').click(function(e) { 
    console.log("log something"); 
    return false; 
}); 

現在點擊圖像上不應該我重定向到新的頁面,但不知何故,它是

到目前爲止,我已經嘗試在img標籤中使用相同的類,使用id而不是類,e.preventDefault而不是僅僅返回false等...

但是,如果我刪除img節點,並放置一些文本,而不是它應該正常工作,但怎麼做,以防止圖像鏈接重定向

+0

是否在導航到鏈接之前登錄到控制檯? – ultranaut

+0

您的代碼有效!或不? - http://jsfiddle.net/43vwk/ – vlcekmi3

+0

不,我試過只用#作爲鏈接,它沒有記錄任何東西 – rockstarjindal

回答

3

如果HTML是動態創建的,則不能使用標準的靜態綁定,該靜態綁定僅適用於存在並且可以在DOM就緒時選擇的元素。

$(document).ready(function() { 
    $(document).on("click", ".link", function(e) { 
     console.log("log something"); 
     return false; 
    }); 
} 

http://api.jquery.com/on/

jQuery的 「上」 是處理這個的首選方式。

0

代碼似乎很好。你確定這個代碼在元素加載到頁面之前沒有被執行嗎?嘗試將它添加一個$(document).ready回調中:

$(document).ready(function() { 
    $('.link').click(function(e) { 
     console.log("log something"); 
     return false; 
    }); 
} 
+0

我的JavaScript是在頁面的結尾,其餘的js工作正常,但不是這部分。 – rockstarjindal

0

中發現,A-標籤動態創建的問題,所以想我將不得不使用不同的東西不是一個簡單的點擊功能

1

我要去猜測錨正被動態加載。

嘗試使用以下:

$(document).on("click", ".link", function(){ 
    console.log("log something"); 
    return false; 
}); 

這會尋找你的「鏈接」類在點擊的時候,而不是在「鏈接」級指出,當最初加載的頁面在哪裏。避免使用「現場」監聽器代替「開始」監聽器。它已被棄用,取決於你使用的jQuery版本,它可能甚至不可用。