有没有办法在执行后清除一个函数?

时间:2013-07-03 03:50:43

标签: jquery mobile swipe

如果标题不清楚,请注意。我有一个swiperight和swipeleft事件,当触发时会将音频源添加到带有自动播放的html5音频标签中。因此,如果你向左滑动,则播放一首歌并向右滑动另一首播放。问题是它只能工作一次。如果我向左滑动,则播放该歌曲然后如果我向右滑动,则再向左滑动,反之亦然。有没有办法重置功能?希望这是有道理的,谢谢!下面是我的代码

<script>
$(document).ready(function() {
    $("body").bind("swiperight", function(event){
        $('#swipe').append(
'<source src="http://a.tumblr.com/tumblr_ljdvcbDIsN1qhk4f9o1.mp3"/>');
    })

    $("body").bind("swipeleft", function(event) {
        $('#swipe').append('<source src="http://www.nerdthegame.com/media/audio/soundtrack/Nintendo-Super-Mario-Theme-Song.mp3" />');
    })
})

1 个答案:

答案 0 :(得分:1)

我相信每次都会执行滑动事件处理程序,但随后您.append()<source>元素将<audio>元素添加到<source>元素中,以便最终生成多个<source>元素。首先尝试删除之前的.empty(),您可以使用$(document).ready(function() { $("body").bind("swiperight", function(event){ $('#swipe').empty().append( '<source src="http://a.tumblr.com/tumblr_ljdvcbDIsN1qhk4f9o1.mp3"/>'); }) $("body").bind("swipeleft", function(event) { $('#swipe').empty().append('<source src="http://www.nerdthegame.com/media/audio/soundtrack/Nintendo-Super-Mario-Theme-Song.mp3" />'); }) }) 执行此操作,如下所示:

{{1}}

似乎然后在小提琴中工作(我没有在演示中使用滑动事件,因为我在笔记本电脑而不是手机上进行测试):http://jsfiddle.net/AG3Tu/