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

快速而肮脏的可能解决方案:

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

您正在寻找的 jquery 中的方法是stopPropagation

摘抄:

描述:防止事件在 DOM 树中冒泡,防止任何父处理程序收到事件通知。

false在回调结束时使用不等于 stopPropagation. 阅读这个 SO 答案(false 是 == preventDefault() + stopPropagation())。你不想这样吧?

jquery api页面的一些附加说明:

  • stopPropagation 不能用于与livedelegate调用相关的事件。
  • stopPropagation 也适用于trigger()调用触发的自定义方法。
于 2013-02-26T18:30:44.940 回答