2

私のページは現在スライドを使用しています

スライダーに新しい「スライド」を動的に追加できるようにしたいと考えています。これを行う方法は、「スライド イメージ」と href へのリンクを含む XML ドキュメントを使用することです。

要素を動的に追加するための私の jQuery コードは次のとおりです。

jQuery.ajax({
    type: "GET",
    url: "xml/slider_non_flash_images.xml",
    dataType: "xml",
    success: function(xml) {
        jQuery(xml).find('image').each(function() {
            var imagesrc = jQuery(this).find('src').text();
            var url = jQuery(this).find('href').text();
            var item = '<div><a href="' + url + '"><img src="' + imagesrc + '"/></a></div>';
            jQuery('.slides_container').append(item);
        });
    }
});

これはすべて機能し、div を含むスライドに div を追加します。問題は、スライドが機能しないことです。

コンテナ内の要素を自分でハードコーディングすると<div>、問題なく読み込まれます。

これは「タイミング」の問題でしょうか?スライダーが実行を試みた後、要素はどこにロードされますか? もしそうなら、どうすればそれらを事前に追加できますか。これはすべて(document).readyメソッドで行われます。もっと早いものはありますか?

ありがとう。

誰かが尋ねると確信しているので、スライダーを開始するコードを次に示します。

jQuery('#slides').slides({
    preload: true,
    preloadImage: 'images/loader.gif',
    play: 8000,
    effect: 'fade',
    pause: 15250000,
    slideSpeed: 8000,
    crossfade: true,
    fadeEasing: "easeOutQuad",
    hoverPause: true
});
4

2 に答える 2

3

ほとんどのスライダーは、現在存在する要素のみをオンロードするために DOM をスキャンします。DOM が変更された場合 (つまり ajax で動的に変更された場合)、スライダーを再初期化する必要がある場合があります。これを行う方法は、スライダー プラグインごとに異なります。

$('#sliders').slides(...) 呼び出しを関数に入れ、ページロード時にその関数を呼び出してから、DOM が ajax によって変更されるたびにその関数を再呼び出ししてみてください。

于 2011-07-29T04:46:31.523 に答える
1

ライブ機能の詳細については、http://api.jquery.com/liveをご覧ください。

于 2011-07-29T04:51:02.337 に答える