基本问题是......
我的网站设置如下:
<player> // A fixed div that contains JPlayer and it's playlist
<main> // all content in here is ajaxed including the links to mp3's for the player
基本上一切正常,直到你点击一个加载新页面的链接,此时JPlayer拒绝再加载歌曲,而JQuery自动完成(在搜索框中)停止工作。
请您查看该网站,看看是否可以告诉您在Ajax加载后导致脚本失败的原因是什么?
要查看问题:
1)点击此链接 - http://bit.ly/ajaxtest
2)点击页面上任意一首曲目上的播放按钮
3)一旦播放歌曲,请点击“最受欢迎的版本”部分中的专辑封面
4)新页面将加载,Jplayer将继续播放不间断但播放链接&amp;然后新页面上的自动完成将不再有效,除非你点击刷新按钮,它只是重新加载整个网站(这显然不是我首先想要的东西)。非常感谢,
G;)
答案 0 :(得分:3)
删除旧“页面”的DOM片段时,还会删除绑定到其中元素的所有事件处理程序。
有两种方法可以解决这个问题:
委派您的事件处理程序,以便它们能够在页面更改后继续存在;在jQuery中,这看起来像$(document).on('click', '.play', ...)
而不是$('.play').on('click', ...)
或者,您可以在插入事件后将事件重新绑定到新的“页面”,即在ajax调用完成后再运行事件绑定设置并重新初始化插件,并且新的“页面”在DOM中