Javascript 如何中断单击功能并添加我自己的

Javascript 如何中断单击功能并添加我自己的,javascript,jquery,html,jplayer,Javascript,Jquery,Html,Jplayer,我正在使用一个名为jPlayer的jQuery/JavaScript包为我的音乐博客创建一个播放列表。播放器位于屏幕顶部,我希望能够让用户单击顶部歌曲的名称,并将其重定向到相应的帖子 我包含的jPlayer是用速记编写的,因此查看js文件没有帮助。我需要的元素是class.jp playlist item.jp playlist current的链接。我以前问过这个问题,那个人说试试这个,但没用 $("a.jp-playlist-item").each(function() { $(th

我正在使用一个名为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);
})

我正在开发的网站是为了让你更好地理解我的意思。

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

$("a.jp-playlist-item").click(function(){
    alert(1);
    return false;
})

快速而肮脏的解决方案:

$("a.jp-playlist-item").click(function(){
    alert(1);
    return false;
})

您可以使用
event.preventDefault()
函数覆盖默认的单击行为,如下所示

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

$('a.jp-playlist-item').on('click', clickCallback );
此外,在完成功能后,您可以
返回false
,这将立即阻止按钮上出现任何进一步的功能


请参见此处有关如何覆盖/停止事件的更详细说明:

您可以使用
event.preventDefault()
函数覆盖默认的单击行为,如下所示

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

$('a.jp-playlist-item').on('click', clickCallback );
此外,在完成功能后,您可以
返回false
,这将立即阻止按钮上出现任何进一步的功能


请参见此处有关如何重写/暂停事件的更详细说明:

您正在查找的jquery中的方法是

摘录:

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

在回调结束时使用
false
不等于
stopPropagation
。读取(false is==preventDefault()+StopperPropagation()。你不想那样吧

jquery api页面中的一些附加注释:

  • stopPropagation不能用于与
    实时
    委托
    调用关联的事件
  • stopPropagation也适用于
    trigger()
    调用触发的自定义方法

您要查找的jquery中的方法是

摘录:

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

在回调结束时使用
false
不等于
stopPropagation
。读取(false is==preventDefault()+StopperPropagation()。你不想那样吧

jquery api页面中的一些附加注释:

  • stopPropagation不能用于与
    实时
    委托
    调用关联的事件
  • stopPropagation也适用于
    trigger()
    调用触发的自定义方法

您是否在控制台中看到任何错误消息?看起来至少代码中缺少了一些分号。此外,单击处理程序可能不在
a
元素上。它可能在父母身上。如果是这种情况,则需要通过从单击处理程序返回false来停止传播。此外,如果是这种情况,您不需要克隆解决方案。您是否在控制台中看到任何错误消息?看起来至少代码中缺少了一些分号。此外,单击处理程序可能不在
a
元素上。它可能在父母身上。如果是这种情况,则需要通过从单击处理程序返回false来停止传播。此外,如果是这种情况,您就不需要克隆解决方案。我以前尝试过这种方法。似乎jPlayer正在以某种方式覆盖它或其他东西。查看我的代码并搜索
($document).ready(function()
),您将在那里看到您的代码,但单击顶部的链接仍然只是播放歌曲,不会显示我添加到代码中的警报。
preventDefault()
不会中断事件。它会停止当前窗口上的默认行为,在大多数情况下是跳转到链接的
href
我以前尝试过此路由。似乎jPlayer正在以某种方式覆盖它或其他内容。查看我的代码并搜索
($document).ready(函数()
您将在那里看到您的代码,但单击顶部的链接仍然只是播放歌曲,不会显示我添加到代码中的警报。
preventDefault()
不会中断事件。它会停止当前窗口上的默认行为,在大多数情况下是跳转到链接的
href
我尝试使用
$('a.jp-playlist-item')。单击(函数(事件){event.stopPropagation();警报(“Hi”);});
,但这不起作用。我用我的jQuery选择器抓取了错误的类吗?很抱歉,我让你们给我解释一下,但似乎没有什么东西想起作用。所以当你说“不起作用”时,它不会显示警报吗?与此同时,我会尝试查看你的链接。是的,它没有显示我的警报,它仍然播放歌曲,我不知道“我不想这样做。在顶级音乐播放器中单击歌曲的名称以理解我的意思。嘿,伙计,我刚刚彻底检查了你所有的播放器代码,不幸的是,playlist.min.js文件使用live绑定单击,这是显而易见的。对于直播活动,你无法停止冒泡。因此你无法得到你想要的。你知道吗你想让我指给你看那个文件中的那些行吗?虽然没有多大用处。如果我解开对歌曲名称的实时点击,它会不会也打乱我在播放器上的“上一步”、“下一步”、“暂停”和“播放”按钮?只要这些按钮仍然有效,我就不在乎了。你看到什么好的解决方案了吗?还有,如果这能更容易在skype上键入,我的Sn是jas7457I,我尝试使用
$('a.jp-playlist-item')。单击(函数(event){event.stopPropagation();警报(“Hi”);;
,但这不起作用。我用jQuery选择器抓取了错误的类吗?对不起,我让你们失望了