我正在使用带有socket.io,express,jade,jsdom,jquery和mongoose的nodejs,并且我通过来自服务器的socket.io事件在客户端加载了页面元素(这样就刮掉了几页到得到各种各样的东西)
一切正常,一切都得到了很好的加载,但我需要运行时加载的元素(div,列表或表[我已经尝试过所有])与jquery一起使用,经过一些研究后我找到了jQuery .live,它在版本1.9中删除了。所以我尝试了以下......
$('.vid_item').on('mouseover', function(event) {
if (event.type == 'mouseover') {
alert('Yay, mouse-over on the loaded element');
} else {
// do something on mouseout
}
});
作为一个测试,我在jade布局中有一个'.vid_item'div,与页面的其余部分一起加载,鼠标悬停事件在该元素上完美运行,但仍然无法处理后加载的项目服务器返回它的数据并触发socket.io事件以向页面添加项目。
我错过了什么吗?如果需要,可以从项目中提供其他代码!
提前干杯!
答案 0 :(得分:0)
像这样使用:
$(document.body).on('mouseover', '.vid_item', function(event) {
jQuery集接收事件,然后将其委托给与作为参数给出的选择器匹配的元素。这意味着与使用live
时相反,执行代码时jQuery集元素必须存在。您可以将document.body替换为绑定时存在的任何元素,以及'.vid_item'
元素所在的元素。