Php Jquery mouseover使用get函数设置动画
我正在制作单独的帖子,我希望帖子在不刷新页面的情况下自动加载,所以我使用jqueryPhp Jquery mouseover使用get函数设置动画,php,jquery,jquery-animate,Php,Jquery,Jquery Animate,我正在制作单独的帖子,我希望帖子在不刷新页面的情况下自动加载,所以我使用jquery$.get。下一步,如果有人将鼠标移动到该帖子上,div将从左侧开始设置动画。但是由于帖子每30秒刷新一次,鼠标动画就不起作用&div只会闪烁和隐藏,不会停留。更好的办法是什么 这是我的代码-Jquery // JavaScript Document $(document).ready(function(){ $(".sharePosts").hide(); $(".LrgPosts").mous
$.get
。下一步,如果有人将鼠标移动到该帖子上,div将从左侧开始设置动画。但是由于帖子每30秒刷新一次,鼠标动画就不起作用&div只会闪烁和隐藏,不会停留。更好的办法是什么
这是我的代码-Jquery
// JavaScript Document
$(document).ready(function(){
$(".sharePosts").hide();
$(".LrgPosts").mouseenter(function() {
$(this).find(".sharePosts").show().animate({width: '51px'}, "fast");
}).mouseleave(function(){
$(this).find(".sharePosts").hide().animate({width: '0px'}, "slow");
});
$(function() {
refreshEPosts();
});
function refreshEPosts(){
setTimeout(refreshEPosts,30000);
$.get('getNewPosts.php', function(data) {
$('#leftAlign').html(data).fadeIn();
});
}
});
由于您正在替换整个HTML,因此div的显示和隐藏动画只是闪烁而不是停留。我认为您应该继续向HTMLDOM添加新帖子,而不是完全替换HTML
// this is just and example, you cant modify with your own code.
function refreshEPosts(){
setTimeout(refreshEPosts,30000);
$.get('getNewPosts.php', function(data) {
if(gotNewPost(data)){
var newPostHtml = "<div>" + data + "</div>";
$('#leftAlign').append(newPostHtml ).fadeIn();
}
});
}
//这只是一个简单的示例,您不能用自己的代码进行修改。
函数refreshEPosts(){
设置超时(刷新次数,30000);
$.get('getNewPosts.php',函数(数据){
if(gotNewPost(数据)){
var newPostHtml=“”+数据+”;
$('#leftAlign').append(newPostHtml.fadeIn();
}
});
}
您要做的一件事是使用.on()
函数附加事件
$('body').on('mouseenter','.Lrgposts',function(){ // stuff});
使用相同的mouseleave。
.mouseenter()
或.mouseleave()
的一个问题是它不适用于动态HTML 它会无限地获取所有帖子如果您的HTML dom中已经有您的帖子,只需不断检查更新,如果您找到一篇新帖子,请为该帖子创建HTML,并将该帖子附加或前置到您的posts div。