2016-01-23 61 views
2

我有下面的代碼,jQuery的對動態加載的div

HTML表單

<form id="t-files"> 
    <a style="margin-left:160px;" class="list-directories" href="#">Select File Path</a><br><br> 
    <div id="fileList"></div> 
</form><br> 

Ajax代碼來獲得文件夾名稱

$('.folderLink').on('click', function (e) { 
    alert('hello'); 
    e.preventDefault(); 
    $.ajax({ 
     type: 'post', 
     url: 'list-directories-inner.php', 
     dataType: 'text', 
     data: $('#t-files').serialize(), 
     success: function (data) { 
      alert(data); 
      //$("#fileList").html(data); 
     } 
    }); 
}); 

php文件處理文件夾名稱

<?php   
    $path = 'templates'; 
    $files = scandir($path); 

    foreach($files as $result) { 
     if ($result != "." && $result != ".." && $result != "desktop.ini") 
      { 
        echo '<img src="img/folder.png" width="40px"><a name="'.$result.'" class = "folderLink" href="#">'.$result.'</a></img><br>'; 
      } 

    } 
?> 

上面的代碼顯示所有f模板中的舊名稱作爲鏈接使用ajax.This工作正常。現在我想要去顯示每個文件夾的子文件夾。當我點擊鏈接時,他們都沒有工作(沒有警報)。忘記ajax.Here是我的jQuery不起作用。

$('.folderLink').on('click', function (e) { 
    alert('hello'); 
}); 

整個事情發生在另一個jquery加載div內。我無法弄清楚這個問題。請幫助

+0

US $'document(。)(「click」,「。folderLink」,function(){// do})' –

+0

'.folderLink'追加到文件? – guest271314

回答

0

您必須使用委託事件綁定。直接事件綁定僅在您的.folderLink已在DOM中才有效。但在你的情況下,它得到動態生成

$(document).on("click",".folderLink",function(){ 
//do stuff 
}) 
+0

這是行得通的。謝謝! –

+0

但是這個節目彈出三次。關閉彈出窗口後,再次顯示。其罰款補充退出()結束。 –

+0

因爲你應該寫另一個問題。 –

0

你沒有什麼.folderLink類CSS樣式在你的DOM。也許在AJAX調用後,但在初始狀態下沒有