0

ここで助けを求める私の最初の叫び。私のタイトルが適切に明示的かどうかはわかりませんが、今思いつくのはこれだけです。私は 2 日間その作業を行ってきましたが、非常に多くの異なるものを読んだので、完全に混乱していると思います。できるだけ正確になるように努めます。これが私の問題です。

まず、これは私がこれに基づいているjQueryコードです:

$thumbnails.find( 'a' ).each( function() {
        pictures.push({
            src: $( this ).attr( 'href' ),    
            title: $( this ).find( 'img' ).attr( 'title' ),
            valign: $( this ).find( 'img' ).data( 'valign' )
        });
    })

あなたは写真に気づきます。そこに押し込みます。さて、これは、

$.vegas( 'slideshow', { 
        backgrounds: pictures,
        delay: 4000,
        fade:5000
     })( 'overlay' );

background属性が画像を使用して必要な画像の名前を取得する方法に注意してください。写真を呼び出す方法がわかりません。連想配列ですか、それともオブジェクトですか?

とにかく、HTML ノードから画像のファイル名を取得したくありません。PHP を使用して、サーバー上のディレクトリ内のファイル名を取得し、それらのファイル名で XML ドキュメントを生成しています。PHP スクリプトで XML ドキュメントを生成する部分は次のとおりです (必要な画像は 5 つだけです)。

header("Content-type: text/xml");
    echo '<?xml version="1.0"?>';
    echo "<img>";
    for($i=0;$i<5;$i++){ 
        echo "<src>img/" . $rep_aleatoire[$i] . "/" . $img_aleatoire[$i] . "</src>";
        echo "<title>" . $img_aleatoire[$i] . "</title>";
    }
    echo "</img>";

XML文書は次のようになります。

<img>
<src>img/portraits/DSC_0161.jpg</src>
<title>DSC_0161.jpg</title>
<src>img/nature/DSC_0019 copy-tych 3.jpg</src>
<title>DSC_0019 copy-tych 3.jpg</title>
<src>img/portraits/DSC_0157.jpg</src>
<title>DSC_0157.jpg</title>
<src>img/editions/DSC_0053.jpg</src>
<title>DSC_0053.jpg</title>
<src>img/editions/DSC_Ant.jpg</src>
<title>DSC_Ant.jpg</title>
</img>

XML データを取得するために使用する JQUERY 部分は次のとおりです。

$.get("main.php", function(data){
        var rep = new Array;
        var file = new Array;
        $(data).find("img").each(function(){
            $(this).find('src').each(function(i){
                rep[i] = $(this).text();
            });
            $(this).find('title').each(function(i){
                file[i] = $(this).text();
            });;
            for(i=0;i<rep.length;i++){
                pictures.push({
                    src: $(rep[i]),    
                    title: $(file[i])
                });
            }
         });
});

picturesはこの関数の範囲外で初期化されているため、必要な場所ならどこでも使用できるはずですが、そうではありません。その関数の外でアクセスしようとすると、空になります。また、その関数のスコープ内にある場合、含まれているのはオブジェクトだけです。正しい方法でやっているかどうかさえわかりません。思い出せないくらい色々な方法を試しました。XML ドキュメントで生成された実際のデータを取得できません。

私が十分に明確であり、皆さんが私が求めているものを理解してくれることを願っています. $vegas関数で使用できるように、適切な形式の画像を生成したいだけです。

どんな助けでも大歓迎です。

4

1 に答える 1

0

初めに。常に変数を宣言してください。

間違った宣言:

var rep = new Array;
var file = new Array;

どちらかである必要があります

var rep = new Array();
var file = new Array();

またはさらに良い:

var rep = [];
var file = [];

Declare i、最後のループで使用していました。

for(var i=0;i<rep.length;i++){
...

またはさらに良い:

var i;
for(var i=0;i<rep.length;i++){
..

これを完了すると、配列値で jquery オブジェクトにアクセスしようとしていることに気付くでしょう。

pictures.push({
  src: $(rep[i]),    
  title: $(file[i])
});

そして、あなたはおそらく次のことを意味していました:

pictures.push({
  src: rep[i],
  title: rep[i]
});

もちろん、var pictures使用しているすべてのスコープで使用できることを確認してください。

于 2012-08-13T02:22:18.740 に答える