我创建了一个(右)侧栏以显示所有新帖子(如facebook)。现在如果用户将鼠标悬停在任何帖子上,它会在新框中淡入显示完整帖子(如facebook)。
此侧栏在5秒间隔后通过ajax请求获取所有新帖子。 以下代码我用于鼠标悬停以显示完整的帖子。
$(".upbox1").mouseover(function() {
var id = $(this).attr('id').replace('','');
$("#menu").fadeIn("slow");
$('.loader2').show();
$.get("uphover?id="+id, function(data) {
$('#menu').empty().html(data);
$('.loader2').hide();
});
});
第一次加载页面后,鼠标悬停显示良好,但只有5秒间隔,当侧重新加载鼠标悬停时无法显示任何内容。
如何解决它?
所有脚本都放在同一个文件中: 我边栏的更新脚本:
var uid = '<? echo $session->id; ?>';
function addside(type, msg){
//Do something for display all new post in side bar.
}
function waitFormailno(){
$.ajax({
type: "GET",
url: "updateside.php",
cache: false,
async : false,
dataType : 'json',
data: "uid="+ uid,
timeout:15000,
success: function(data){
addside("MyDivId", data);
setTimeout(waitFormailno, 15000);
},
error: function(){
setTimeout(waitFormailno, 15000);
}
});
}
$(document).ready(function(){
waitFormailno();
});
答案 0 :(得分:1)
您需要使用.on()
语法:
$('body').on('mouseover', '.upbox1', function() {
var id = $(this).attr('id').replace('','');
$("#menu").fadeIn("slow");
$('.loader2').show();
$.get("uphover?id="+id, function(data) {
$('#menu').empty().html(data);
$('.loader2').hide();
});
});
如果边栏永远不会更改,您可以将body
替换为#sidebar
(根据需要替换)。