防止默认不起作用

时间:2013-12-22 00:04:10

标签: 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>');

});

2 个答案:

答案 0 :(得分:4)

您正在用新的元素替换元素。事件处理程序绑定到元素,而不是新元素,存储在变量playpause中的引用也将是旧的分离DOM元素。< / p>

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

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

答案 1 :(得分:1)

$('body').on('click','#pause',function(e){
$('body').on('click','#play',function(e){

您没有提供HTML,但这些应该有用。