0

jQuery によって ul で作成された li タグの例について質問があります。

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

ULでハードコーディングされたliタグとは異なります... GalleryView jQueryプラグインで画像をアップロードしようとしているため、質問する理由は、ギャラリービュープラグインの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 要素をロードする「いつ、どのように」にすべてラップされています。この記事では、私が話していることを簡単に説明します。

事前に (DOM の準備が整う前に) 動的要素をロードしても、プラグインのロジックに干渉してはなりません。アイテムが成功したり、ajax リクエストが完了したりした場合ではなく、事前にロードされていることを確認する必要があります。その時までには、手遅れです。

アップデート:

AJAXリクエスト内で、外部 HTML をページにロードし、done() で、追加の動的な li 要素を作成/ロードしてから 、プラグインを実行します [これらはすべて done() 関数内で実行します]。

それが役立つかどうかを確認してください

于 2013-06-18T17:13:01.037 に答える
0

私は解決策を持っています。動的要素 (li タグ) は、DOM の準備ができた時点では使用できませんでした。だから私は別のjQueryプラグインを作り、xmlを呼び出して画像を読んで検証しました。検証が完了したら、URL とともに li を追加します。次に、残りのxmlデータを読み取るための別のjqueryプラグインがあります。document.ready 関数の下の html ページで、画像プラグインを呼び出し、続いて 2 番目のプラグインと 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 に答える