0

ここにある「重複」メソッドに基づいて、Ajax を介してロードされたコンテンツのホバー時にサウンドを再生しようとしています: http://css-tricks.com/play-sound-on-hover/ :

function audioController(){
$("a") // loop each menu item
  .each(function(i) {
    if (i != 0) { // only clone if more than one needed
      $("#hover")
        .clone()
        .attr("id", "hover-" + i)
        .appendTo($(this).parent());
    }
    $(this).data("beeper", i); // save reference
  })
  .mouseenter(function() {
    $("#hover-" + $(this).data("beeper"))[0].play();
  });
$("#hover").attr("id", "hover-0"); // get first one into naming convention
}

これは、ajax 以外のすべての href で機能します。ただし、Ajax コンテンツの場合、ajax コンテンツの最初の href に対してのみ機能します。次のエラー メッセージが表示されます。

Uncaught TypeError: Cannot call method 'play' of undefined これは次の行になります。

$("#hover-" + $(this).data("beeper"))[0].play();

Ajax呼び出しで関数をロードしようとしている方法は次のとおりです。

    $("#site-nav .nav1").on("click", function(event) {
    $('ul.top-level').load('assets/includes/recent.php', function(){
        $(this).show();
        audioController();
    });
    event.preventDefault();
});
4

1 に答える 1

1

HTML5 用の SoundManager2 を試すことをお勧めします。

ここでサンプルを見つけることができます。

于 2012-05-22T21:42:34.743 に答える