2015-02-09 211 views
-3

我有以下的javascript代碼:jQuery的單擊事件從未觸發

$(function(){ 
    $('a.folder').click(function() { 
     // code goes here ... 
    } 
}); 

而下面的html代碼:

<a class="folder" href="GetFilesAndFolders?rootFolder=Exigences">Etudes de cas</a> 

每當我點擊鏈接,永遠達不到的JavaScript代碼。我必須說,這個HTML代碼是在頁面加載後動態生成的。這是原因嗎?任何解決方法?

+3

http://learn.jquery.com/events/event-delegation/ – Alex 2015-02-09 15:14:20

+0

@WashingtonGuedes事實並非如此。也許他想要默認行爲發生,除了他的js做些什麼 – 2015-02-09 15:16:18

+2

你有+ 3K代表,你不認爲谷歌搜索可能有幫助嗎? – Alex 2015-02-09 15:16:50

回答

0

當你裝上單擊處理它可能是你的錨不存在,請嘗試使用此:

$(function(){ 
    $(document.body).on('click', 'a.folder', function() { 
     // code goes here ... 
    }); 
}); 

使用該event delegation單擊事件將觸發即使你的錨在這段代碼之後動態創建。

+0

這就是我所需要的,它像一個魅力 – Bronzato 2015-02-09 15:22:47

+0

請告訴OP你使用Deligates ! – 2015-02-09 15:31:01

0

$(document).ready(function() { 
 
    $("body").on("click", "a.folder", function(e) { 
 
    e.preventDefault(); 
 
    alert('a .folder was clicked'); 
 
    }); 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<a class="folder" href="GetFilesAndFolders?rootFolder=Exigences">Etudes de cas</a>

+0

對明顯的出版物不回答 – Alex 2015-02-09 15:16:24

+1

這也是錯誤的--a.folder選擇器不會考慮動態添加的元素。您需要綁定到層次結構中較高級的元素。像這樣:'$(「body」)。on(「click,」a.folder「,function(){});' – Dellkan 2015-02-09 15:18:08