javascript - 单击文本时 e.PreventDefault() 不起作用

标签 javascript html css

所以,我正在尝试在我的网站上创建一个音乐播放列表。当我点击不同的文本时,我有音乐播放的地方。但是,我希望它不会将我带到播放歌曲的页面。我尝试使用 e.PrevetnDefault() 来实现此目的,希望它能在单击文本时取消我的页面打开一个新页面。但是,它不起作用。每当我单击文本时,就会打开一个页面。

看看我的代码:

   <script>
    audioPlayer();

    function audioPlayer() {
        var currentSong = 0;
        $("audioPlayer")[0].src = $("DJList li a")[0];
        $("audioPlayer")[0].play();
        $("DJList li a").click(function(e) {
            e.preventDefault();
            $("#audioPlayer")[0].src = this;
            $("audioPlayer")[0].play();
            $("#DJList li a").removeClass("current-song");
            currentSong = $(this).parent().index();
            $(this).parent.addClass("current-song");
        });

        $("audioPlayer")[0].addEventListener("ended", function() {
            currentSong++
            if (currentSong == $("DJList li a").length)
                currentSong = 0;
            $("DJList li").removeClass("current-song");
            $("DJList li:eq(" + currentSong + ")").addClass("current-song");
            $("audioPlayer")[0].src = $("DJList li a")[currentSong].href;
            $("audioPlayer")[0].play();
        });
</script>

最佳答案

$("DJList li a").click(function(e) { 不会选择您的链接,因为 DJList 不是任何元素名称被选中。 因此,您的 PreventDefault 甚至没有被调用。
对于初学者来说,将其更改为 $("#DJList li a") 可能会可行。您在多个地方都有同样的错误。

关于javascript - 单击文本时 e.PreventDefault() 不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43836208/

相关文章:

javascript - 添加超链接到图像(背景图像)

javascript - IndexedDB - 检测是否建立索引

html - 如何使列表中的元素符号点对齐

html - Bootstrap 4列垂直居中并保持相同高度

javascript - 调用具有多个数组参数的函数

用于更改 css 中的填充的 Javascript

javascript - 在当前窗口中获取高亮文本并在弹出窗口中发送

html - IE、溢出和消失的列表项

html - 更改 Bootstrap 轮播的高度 - 保持响应

javascript - CSS Transitions 有时会滞后