0

変数 my_sound は、最初の外側の関数で宣言されています。したがって、ネストされた関数で使用できるはずです。ただし、マウスアウト イベントは結果を生成しません。私は何を間違っていますか?助けてくれてありがとう。

$(document).ready(function () {

    var starting_pics = ["CN.gif", "EN.gif", "GN.gif"];
    var starting_sounds = ["CN.mp3", "EN.mp3", "GN.mp3"];

    var i = 0;

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

    $("#main").on("click", ".pics", function () {
        var i = $(this).index();
        var my_sound =($("<audio/>").attr("src", "audio/" + starting_sounds[i])).load().get(0).play();

        $("#main").on("mouseout", ".pics", function () {
            $("my_sound").animate({ volume: 0 }, 1000);
        });
    });
});
4

1 に答える 1

0

問題はおそらく.play()、jQuery オブジェクト (または、そのことについては何も返さないためundefined) を返さないことです。

さらに、他のコメントが言っているように、それが jQuery object である場合$('my_sound').whateverは必要ありませんが、そうではありません。だから多分あなたは試すことができますmy_sound.whatever

var $my_sound = $("<audio />").attr("suchandsuch","etc");
$my_sound.load().get(0).play();
$my_sound.whatever();
于 2013-08-14T01:59:59.820 に答える