2016-01-23 60 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调用后,但在初始状态下没有