Jquery内容'再次加载内容后,s鼠标悬停不显示

Jquery content's mouseover not display after contents load again

本文关键字:鼠标 悬停 显示 内容 加载 Jquery      更新时间:2023-09-26

我创建了一个(右侧)栏,用于显示所有新帖子(如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();
});

您需要使用.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(根据需要进行替换)。