0

我有一个问题,jQuery 说的例子是如何在 ul 中创建的 li 标签;

   $("#selectedPropertyImg_Wrapper").find("#myGallery").append("<li><img src=" + PropertyDetail.d_img_urlname[index].text() + "/></li>");

与 ul 中硬编码的 li 标签不同...之所以询问是因为我正在尝试在 GalleryView jQuery 插件中上传图像,从 Gallery View 插件中的 url 动态加载图像内容,它适用于静态但似乎不是动态创建的代码,即使我已经测试过它会生成完全 li 格式的标签,并且我在结束 ajax 函数时调用了 galleryView 插件......

提前谢谢了...

4

3 回答 3

4

动态创建的代码没有“附加”监听器。您将需要重新附加或重新初始化您拥有的任何侦听器/插件到新生成的代码

$('#selector').append("<li>Add my code</li>");
$('#selector li').myplugin();
于 2013-06-18T16:51:57.727 回答
1

您试图在动态创建的 li 元素和非动态创建的 li 元素之间找出答案,都包含在“何时以及如何”加载动态 li 元素中。这篇文章简要描述了我所说的内容。

提前加载你的动态元素(在 DOM 准备好之前),不应该干扰你的插件逻辑。您只需要确保您的项目提前加载,而不是成功或完成您的 ajax 请求。到那时,为时已晚。

更新:

在 AJAX 请求中,将您的外部 HTML 加载到页面上,然后在 done() 上,创建/加载额外的动态 li 元素,然后 运行您的插件 [所有这些都在您的 done() 函数中]。

看看有没有帮助

于 2013-06-18T17:13:01.037 回答
0

我有解决办法。我的动态元素(li 标签)在 dom 准备好时不可用。所以我制作了单独的 jQuery 插件,调用 xml 并读取和验证图像。验证完成后,我将我的 li 与 URL 一起附加。然后我有另一个 jquery 插件来读取其余的 xml 数据。我在 document.ready 函数下的 html 页面我调用图像插件,然后是第二个插件和调用 GalleryView ......所有工作......

所以我希望这个答案和解决方案一起回答我的问题......

$.fn.initializeImg = function (CP_ID) {

$.ajax({
    type: "GET",
    url: "XML4.xml",
    dataType: "xml",
    async:false,
    success: function (xml) {

           $("#selectedPropertyImg_Wrapper").find("#myGallery").append("<li><img src= " + gb_var.j_propertyImgURLs[index].text() + " /></li>");

在html页面中

  $(document).ready(function () {

    //initialize gallery images from url//

        $(this).initializeImg(requested_Property);


        //-------pass property ID to plugin ----//

        $(this).getPropertyDetail(requested_Property);


        //-----image gallery view---//
        $(function () {
            $('#myGallery').galleryView({
                panel_width: 750,
                panel_height: 500,
                frame_width: 100,
                frame_height: 67
            });
        });
   }
于 2013-06-20T13:47:23.333 回答