Php jquery工具提示在加载ajax内容后不起作用

Php jquery工具提示在加载ajax内容后不起作用,php,jquery,css,tooltip,Php,Jquery,Css,Tooltip,我使用此处显示的工具提示脚本: 这就是我所使用的,只是做了一些改动: $(document).ready(function() { $("body").on("mouseover", ".tip_trigger", function(){ tip = $(this).find('.tip'); $(".tip").html('Loding...'); tip.show(); //Show tooltip

我使用此处显示的工具提示脚本:

这就是我所使用的,只是做了一些改动:

$(document).ready(function() {

        $("body").on("mouseover", ".tip_trigger", function(){
            tip = $(this).find('.tip');
            $(".tip").html('Loding...');
            tip.show(); //Show tooltip
        }, function() {
            tip.hide(); //Hide tooltip

        }).mousemove(function(e) {
            var mousex = e.pageX; //Get X coodrinates
            var mousey = e.pageY; //Get Y coordinates
            var tipWidth = tip.width(); //Find width of tooltip
            var tipHeight = tip.height(); //Find height of tooltip


        var X = $('.tip_trigger').offset().left;
        var Y = $('.tip_trigger').offset().top;
        mousex = e.pageX - X+180;
        mousey = e.pageY - Y+105;


            tip.css({  top: mousey, left: mousex });
            $(".tip").html('Loding...');
            var idp= this.title;

             $('.tip').load("/infopage.php", { id: idp});


        });

});
带有提示的html如下所示:

<td style="padding-left:4px;"><a href="#" class="tip_trigger" title="40420549">text<span class="tip"></span></a> txtxtxtxt</td>
txtxtxt
这很好,但问题是,在我用ajax加载一些php内容后,脚本无法处理来自那里的内容

为什么会这样?
如果有另一种方法可以将php内容加载到工具提示中,那也很好:)

EDIT:通过将jQuery分解为三个元素,可以实现实时“打开”功能。“ON mouseover”、“ON mousemove”和“ON mouseout”-因为ON函数不支持悬停的多个定义。。。还必须为每个函数添加一个tip变量声明,以使其正常工作:

var tip=$(this.find('.tip')

这个设置应该可以让您更进一步,但是如果您的PHP没有被ajax调用,我将陷入僵局,希望这能有所帮助


这里发生的是ajax调用生成的新内容的问题,新内容没有用jQuery函数实例化:

$(".tip_trigger").hover(function(){ ...
要解决此问题,您需要将该jQuery.hover触发器转换为.on()或.live()函数[取决于您的jQuery版本。live是与.on()类似的较早弃用函数。如果您使用的是任何最新的jQuery版本,则应先尝试.on()

类似这样的东西可以解决这个问题:

$("body").on("mouseover", ".tip_trigger", function(){ ...
这大致可以理解为:

在页面主体内-在所有元素的悬停事件上“.tip_trigger”[无论它们是在何时生成的,无论是使用ajax还是在文档准备就绪时]-调用所述函数


需要注意的一点是,使用“body”是一种糟糕的做法,您可能希望用调用此jQuery时文档中存在的最具体的元素替换该“body”选择器,该元素还包含您使用ajax创建的“.tip_trigger”对象。您可以在这里更具体地使用,这将提高性能。

您可以使用$('.tip).load(“/pageinfo.php,{id:idp})而不是$.post(..),谢谢您的重播。我改变了这一点,但它并没有解决我的问题。嗯,我明白了,你想在ajax请求加载的内容中使用javascript。如果是这样的话,那么您可以将javascript添加到您的内容中(在pageinfo.php中),加载函数将执行它。joe,感谢您的重播,我像您所说的那样更改了行,但现在它不起作用了。(我使用Jquery 1.9.1)现在我看到我得到了这个错误控制台:Uncaught“ReferenceError:hover未定义”抱歉,我忘了你想用“mouseover”替换hover,我将编辑答案以反映这仍然不起作用。现在我得到了这个错误:“uncaughtreferenceerror:tip未定义”。这就是html的样子:txtxThreak id冒昧猜测错误消息是由于没有正式定义tip=$(this.find('.tip');作为一个javascript变量。。。将var添加到开头,如var tip=$(this.find('.tip');
$("body").on("mouseover", ".tip_trigger", function(){ ...