javascript - 防止默认不起作用

标签 javascript jquery preventdefault

我正在开发音乐播放器,我相信我的阻止默认设置不起作用。当我点击播放时一切正常。该按钮切换为暂停按钮并播放音乐。但是,当我点击暂停时,页面会刷新。有什么想法吗?

谢谢!

play.on('click', function (e) {
    e.preventDefault();
    song.play();
    $(play).replaceWith('<a class="button gradient" id="pause" href="" title=""></a>');
    container.addClass('containerLarge');
    cover.addClass('coverLarge');

});

pause.on('click', function (e) {
    e.preventDefault();
container.removeClass('containerLarge');
    cover.removeClass('coverLarge');
    song.pause();
    $('#pause').replaceWith('<a class="button gradient" id="play" href="" title=""></a>');

});

最佳答案

您正在用新元素替换这些元素。事件处理程序绑定(bind)到元素,而不是新元素,并且存储在变量playpause中的引用将是旧的分离的DOM 元素也是如此。

您需要保留这些元素,并以编程方式隐藏/显示它们,而不是完全删除它们并用其他元素替换它们:

play.on('click', function (e) {
  e.preventDefault();
  play.hide();
  pause.show();
});

关于javascript - 防止默认不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20724840/

相关文章:

javascript - 异步等待调用后 react 状态未更新

javascript - Vitest 带有 element plus unplugin 未知的 scss 扩展

jquery - 更改脚本 "jQuery-File-Upload"的显示顺序

javascript - 如何按字母顺序对页面上具有 optgroup 的所有选择框进行排序,而不将选项移出各自的组?

javascript - event.preventDefault() 在 Mozilla 或 IE 中不起作用

reactjs - React - 如何防止 <a href> 刷新

javascript - 在 Vue JS 组件中使用同步进行双向 prop 数据绑定(bind)

javascript - 为什么 console.dir ('' ) 打印 "no properties"?

javascript - 标签编辑器 - $(...).jsonTagEditor 不是函数

javascript - 如何阻止浏览器默认输入验证?