动态地通过ajax获取jQuery脚本和内容

时间:2011-03-11 11:37:03

标签: javascript jquery ajax dynamic

我有一个页面,它加载了一个文件树,其中包含指向实际页面的链接,以及子树和所有内容。但是由于大文件夹会创建大文件,因此隐藏文件夹的jQuery脚本会非常棒。有一个问题,因为树是通过ajax加载的,并且看起来从不相同,所以jher是jQuery。我可以动态生成jQuery,但它不会加载通过ajax加载的任何javascript。特别不是事件。 (jQuery,onclick)

<ul>
<li><b>www</b> - 5 files, 14 directories, 1877 KB total.
<ul>
<li><b>Admin</b> - 4 files, 3 directories, 44 KB total.
<ul>
<li><b>Editera</b> - 2 files, 16 KB total.
<ul>
<li><a href="../../../lh10fego/Admin/Editera/gastbok_edit.asp">gastbok_edit.asp</a> - <a href="viewSource4.asp?page=lh10fego/www/Admin/Editera/gastbok_edit.asp"> View Source</a> - 1100 bytes, last modified on 2011-01-17 12:06:43.   <b> table names found:</b> Gastbok</li>
<li><a href="../../../lh10fego/Admin/Editera/Medlem_edit.asp">Medlem_edit.asp</a> - <a href="viewSource4.asp?page=lh10fego/www/Admin/Editera/Medlem_edit.asp"> View Source</a> - 15671 bytes, last modified on 2011-01-17 12:06:44.   <b> table names found:</b> Inlogg</li>
</ul>
</li>
<li><b>Radera</b> - 2 files, 2 KB total.
<ul>
<li><a href="../../../lh10fego/Admin/Radera/gastbok_radera.asp">gastbok_radera.asp</a> - <a href="viewSource4.asp?page=lh10fego/www/Admin/Radera/gastbok_radera.asp"> View Source</a> - 813 bytes, last modified on 2011-01-17 12:06:45.   <b> table names found:</b> Gastbok</li>
<li><a href="../../../lh10fego/Admin/Radera/medlem_radera.asp">medlem_radera.asp</a> - <a href="viewSource4.asp?page=lh10fego/www/Admin/Radera/medlem_radera.asp"> View Source</a> - 811 bytes, last modified on 2011-01-17 12:06:45.   <b> table names found:</b> Inlogg</li>
</ul>
</li>
<li><b>Uppdatera</b> - 2 files, 2 KB total.
<ul>

sry for big code,但是有一个渲染页面及其中的项目的示例。我认为path变量可以用作类,因此路径中的所有项都是同一个类。感谢您阅读我的精彩文本块。例如:“../../lh10fego/Admin/Radera”。威尔。和/导致问题?可能。

任何人都可以给我一个jQuery代码,它的工作方式是隐藏/显示每个项目,如“myClass”nomatter,它们在页面上?

还有一种通过ajax-request添加后激活该代码的方法。

注入的html,包括javascript最终会出现在文档头部的div中。

编辑:我设法获得了几乎所需的功能,但仍未通过ajax。我使用了这个关键字并隐藏了下面的特定类。现在的问题是,由于链接位于另一个链接中,因此您单击的链接和最顶端的链接都将触发,同时隐藏所有内容。

EDIT2:

    set fs = CreateObject("Scripting.FileSystemObject")
     set folder = fs.GetFolder(path)
    currentfolder = path
    fname = Replace(folder.path,"/","x")
fname = Replace(fname,".","2")
fname = Replace(fname,":","5")   'removing wierd chars and adding "asd" in middle
fname = Replace(fname,"\","3")   'to avoid multiple hits when searching
fname = Replace(fname,Right(fname,7),"asd" & Right(fname,7))

    'Display the target folder and info.

     Response.Write("<li onclick=""$(this).find('li." & fname & "').slideToggle();""><b>" & folder.Name & "</b> - " _
       & folder.Files.Count & " files, ")
     if folder.SubFolders.Count > 0 then
       Response.Write(folder.SubFolders.Count & " directories, ")
     end if
     Response.Write(Round(folder.Size / 1024) & " KB total." _
       & vbCrLf)

现在的问题是,每当我点击某个内容时,它就会应用于嵌套的li-tag,我点击的那个和最高的li-tag都会隐藏。此外,我现在正在进行的测试是没有ajax只是为了让我的jQuery排序。

2 个答案:

答案 0 :(得分:0)

为了更好地理解:您使用ajax加载HTML和Javascript代码并将其注入另一个HTML页面。我的问题是:也会简单的Javascript,例如: alert("test");,注射后不起作用?

答案 1 :(得分:0)

十天之后我觉得我有一个解决方案:

<html><head>
    <script src="./jquery.js" type="text/javascript"></script>
    <script type="text/javascript">
        function jqueryAjax(url)
        {
            $.ajax({
              url: ""+url,
              cache: false,
              dataType: "script",
              success: function(html){
                $("#content").append(html);
              }
            });
        }
    </script>
</head>
<body>
    <div id="control" style="border: 1px solid green;">
        <p><a href="#" onclick="jqueryAjax('htmljs.js'); return false">Ajax with Jquery (1.2.6)</a></p>
    </div>
    <div id="content" style="border: 1px solid red; width: 640px; height: 480px; top: 200px"></div>
</body></html>

坏消息是:错误控制台中出现错误消息,我无法删除它们。但它有效......