对于一些ajax切换的页面内容进行事件监听 通常情况下 基于事件冒泡的方式监听就已经能够满足需求了 例如:

//事件冒泡
$(document).on('click', '#content', function(e) {
    console.log('click')
})

很显然,如果不基于事件冒泡的方式进行监听,在内容改变以后事件监听会失效 例如:

$('#content').on('click', function(e){
    console.log('click')
})

//5秒以后改变页面内容 上面的监听事件会失效
setTimeout(function(){
    document.write('click');
}, 5000)

通过监听DOMNodeInserted事件重新监听的方式可以解决这个问题(推荐基于事件冒泡的方式)

$(document).on('DOMNodeInserted', function(){
    $('#content').on('click', function(e){
        console.log('click')
    })
})