0

シックボックスについてのアドバイスが必要です。私はthickboxインラインの例に従いましたが、私のページにdivのコンテンツをロードできませんでした。そのような私のhtmlコードとjqueryコード。私の問題に対する提案はありますか?

 $(".artist").hover(function(){
        var artistname = $(this).attr("title");
        var artist = "<embed hspace=\"5\" vspace=\"5\" ";
        artist += "src=\"http://abc.vn/res/music/passion/MP3_Player.swf\"";
        artist += "menu=\"false\" quality=\"high\" width=\"330\" height=\"338\"";
        artist += "name=\"index\" allowScriptAccess=\"never\" type=\"";
        artist += "application/x-shockwave-flash\" pluginspage=\"http://www.macromedia.com/go/getflashplayer\"";
        artist +=   "flashvars=\"&amp;config=http://abc.vn/res/music/passion/MP3_Config.xml&amp;";
        artist += "file=http://abc.vn/listsong.hightway?artist=" +artistname+ "\"";
        artist += "wmode=\"transparent\" border=\"0\"></embed>";

        $("#tooltip_artist").replaceWith(artist);
        $("#tooltip_artist").css({display:"none"});
    },function(){});

<a class="artist" title="singer's name" rel="#TB_inline&inlineId=tooltip_artist" href="/singer's name">singer's name</a>

ご清聴ありがとうございました!

4

1 に答える 1

1

まず最初に、ここで replaceWith を使用するのは賢明ではありません。最初のホバリングの後、$('tooltip_artist') ノードが swf に置き換えられます --> 以降のホバリングは機能しません。.html() メソッドを使用して、埋め込みコードを $('tooltip_artist') に挿入することをお勧めします。

次に、属性の引用符を常にエスケープする必要がないように、html スニペットに二重/一重引用符を使用します。

var artist = '<embed hspace="5" vspace="5">';

最後に、ここで .hover を使用してもよろしいですか? 明らかに、あなたの意図は、ユーザーがアーティストの名前の上にカーソルを置いている間にそのアーティストの音楽を再生することです。

しかし、この場合、あなたのアプローチは間違っています。スクリプト可能な mp3 プレーヤーをページのどこかに埋め込み、ユーザーがトラック名の上にカーソルを置いたときに再生メソッドをトリガーすることをお勧めします。これにより、常に .hover で swf ムービーを再インスタンス化する場合と比較して、はるかに優れたパフォーマンスが得られます。

于 2009-05-29T08:17:26.480 に答える