Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/364.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
禁用超链接但保留此javascript的功能?_Javascript_Jquery_Html_Html5 Audio_Playlist - Fatal编程技术网

禁用超链接但保留此javascript的功能?

禁用超链接但保留此javascript的功能?,javascript,jquery,html,html5-audio,playlist,Javascript,Jquery,Html,Html5 Audio,Playlist,我正在创建一个带有播放列表的音频播放器,我使用javascript将链接识别为歌曲,并将它们放在播放列表中 <a href="media/example/01.wav"></a> <a href="media/example/01.wav"></a> <a href="media/example/01.wav"></a> 这是我使用的脚本 var audio; var playlist; var tracks; var

我正在创建一个带有播放列表的音频播放器,我使用javascript将链接识别为歌曲,并将它们放在播放列表中

<a href="media/example/01.wav"></a>
<a href="media/example/01.wav"></a>
<a href="media/example/01.wav"></a>

这是我使用的脚本

var audio;
var playlist;
var tracks;
var current;
init();
function init(){
    current = 0;
    audio = $('.player');
    playlist = $('.album_tracks_container');
    tracks = playlist.find('li a');
    len = tracks.length;
    var currentPlaylist;
    playlist.find('a').click(function(e){
        e.preventDefault();
        link = $(this);
        current = link.parent().index();
        currentPlaylist = link.closest('.album_tracks_container'); // <---
        run(link, audio[0]);
        $('.audioplayer').removeClass('audioplayer-stopped');
        $('.audioplayer').addClass('audioplayer-playing');
    });
    audio[0].addEventListener('ended',function(e){
        current++;
        if(current == len){
            current = 0;
            link = currentPlaylist.find('a')[0];
        }else{
            link = currentPlaylist.find('a')[current];   
        }
        run($(link),audio[0]);
        $('.audioplayer').removeClass('audioplayer-stopped');
        $('.audioplayer').addClass('audioplayer-playing');
    });
}
function run(link, player){
    $('.album_tracks_container').find('.album_tracks_light, .album_tracks_dark').removeClass('album_tracks_active');
    player.src = link.attr('href');
    par = link.parent();
    par.addClass('album_tracks_active').siblings().removeClass('album_tracks_active');
    $('.album_tracks_container').find('.album_tracks_light, .album_tracks_dark').find('.album_tracks_number, .album_tracks_text').removeClass('album_tracks_number-text_active');
    par.find('.album_tracks_number, .album_tracks_text').addClass('album_tracks_number-text_active');
    audio[0].load();
    audio[0].play();
}
var音频;
var播放列表;
var轨迹;
无功电流;
init();
函数init(){
电流=0;
音频=$('.player');
playlist=$('.album_tracks_container');
tracks=playlist.find('li a');
len=轨道长度;
播放列表;
播放列表。查找('a')。单击(功能(e){
e、 预防默认值();
link=$(此项);
当前=link.parent().index();
currentPlaylist=link.closest('.album_tracks_container');//您可以将
元素转换为可单击的元素(行为类似于链接)

这里有一个例子:

$('span.link').click(function(e){
    alert('Hello!');
   // put the action of your <a> here
});
$('span.link')。单击(函数(e){
警惕(“你好!”);

//把你的动作放到

最简单的方法是删除href属性,尝试使用“数据文件”代替。此外,你还需要更改以下行

player.src = link.attr('href');


您可以将span与html5数据属性结合使用,比如:$('span').data('href'),因为jQuery数据也可以读取html5数据属性。您也可以使用.attr('data-href')等来读取。我使用了它并更改了脚本播放列表中的这些行。查找('a')。单击(函数(e){player.src=link.attr('href'));转到此播放列表。查找('.span link')。单击(函数(e){player.src=link.attr('data');感谢Goran.it和mplungjan的帮助!
player.src = link.data().file;