1

jPlayer という jQuery/JavaScript バンドルを使用して、音楽ブログのプレイリストを作成しています。プレーヤーは画面の上部にあり、ユーザーが上部の曲の名前をクリックして、対応する投稿にリダイレクトできるようにしたいと考えています。

含まれている jPlayer は省略形で記述されているため、js ファイルを表示しても役に立ちません。必要な要素は class のリンクです.jp-playlist-item.jp-playlist-current。前に聞いたことがありますが、やってみるように言われましたが、うまくいきませんでした...

$("a.jp-playlist-item").each(function() {
    $(this).replaceWith($(this).clone()) 
}) 
$("a.jp-playlist-item").click(function(){
    alert(1);
})

私が取り組んでいるサイトはhttp://www.startingtofeelit.comですので、私の言いたいことをよりよく理解することができます。

4

3 に答える 3

1

event.preventDefault()このように、関数を使用してデフォルトのクリック動作をオーバーライドできます。

function clickCallback( event ) {
    event.preventDefault();
    //do more stuff here.
}

$('a.jp-playlist-item').on('click', clickCallback );

また、機能の後return false、ボタンでそれ以上の機能が発生するのをすぐに停止することができます。

ここでイベントをオーバーライド/停止する方法の詳細な説明を参照してください: event.stopPropagation と event.preventDefault の違いは何ですか?

于 2013-02-26T18:20:12.600 に答える
0

探しているjqueryのメソッドはstopPropagationです。

抜粋:

説明:イベントがDOMツリーをバブリングするのを防ぎ、親ハンドラーにイベントが通知されないようにします。

falseコールバックの最後に使用することは、と同じではありません stopPropagationこのSOの答えを読んでください(falseは== PreventDefault()+ stopPropagation()です)。あなたはそれを望まないのですか?

jquery apiページからのいくつかの追加のメモ:

  • livestopPropagationは、およびdelegate呼び出しに関連付けられたイベントには使用できません。
  • stopPropagationは、trigger()呼び出しによって起動されるカスタムメソッドでも機能します。
于 2013-02-26T18:30:44.940 に答える
0

迅速で汚い可能な解決策:

$("a.jp-playlist-item").click(function(){
    alert(1);
    return false;
})
于 2013-02-26T18:19:22.320 に答える