1

アラートの直前の 35 行目は、-1 を返します。$(this).index()私も同じ結果で試しました。クリックするとEN.gif4 が返され、その配列に が返されてロードされgrand_array_pics[4]ますen_array_pics.gifs

$(document).ready(function () {

    var main_pics = ["AN.gif", "BN.gif", "CN.gif", "DN.gif", "EN.gif", "GN.gif"];

    var starting_pics = ["AN.gif", "CN.gif", "EN.gif"];

    var an_array_pics = ["BN.gif", "EN.gif", "GN.gif", "AN.gif","DN.gif"];
    var bn_array_pics = ["CN.gif", "DN.gif", "GN.gif"];
    var cn_array_pics = ["DN.gif", "GN.gif", "AN.gif", "CN.gif"];
    var dn_array_pics = ["EN.gif", "AN.gif", "CN.gif"];
    var en_array_pics = ["GN.gif", "AN.gif", "CN.gif", "EN.gif"];
    var gn_array_pics = ["AN.gif", "CN.gif", "EN.gif", "GN.gif"];

    var grand_array_pics = [
        an_array_pics,
        bn_array_pics,
        cn_array_pics,
        dn_array_pics,
        en_array_pics,
        gn_array_pics
    ];

    var i = 0;

    for (i = 0; i < starting_pics.length; i++) {
        $("<img/>").attr("src", "images/" + starting_pics[i]).load(function () {
            $(this).appendTo("#main");
            $(this).addClass("pics");
        });
    }

    $("#main").on("click", ".pics", function () {

        var j = $.inArray(this, main_pics);
        alert(j);

        $("#sidebar .pics").remove();
        $(this).clone().appendTo("#train");
        $(this).clone().appendTo("#sidebar");
        $("#main .pics").remove();

        var chosen_pics_array = grand_array_pics[j];
        var count = chosen_pics_array.length;

        var k = 0;

        for (k = 0; k < count; k++) {
            $("<img/>").attr("src", "images/" + chosen_pics_array[k]).load(function () {
                $(this).appendTo("#main");
                $(this).addClass("pics");
            });
        }
    });
});       //end ready
4

2 に答える 2

1

これを試してみてください。ファイルの名前を取得する必要があり、要素自体をに渡しています$.inArray

var j = $.inArray(this.src.substring(this.src.lastIndexOf('/')+1), main_pics);
于 2013-07-31T19:26:59.290 に答える
1

thisは DOM<img>要素、main_picsは文字列の配列です。中には絶対に見つかりません。使用する

var j = $.inArray(this.src.split("/").pop(), main_pics);
于 2013-07-31T19:27:29.903 に答える