2012-03-03 73 views
0

我正在使用此代码使title = ""看起来更好。某些东西已被POST后使用功能

this.vtip = function() { 
    this.xOffset = -10; 
    this.yOffset = 10; 
    $(".vtip").unbind().hover(function (a) { 
     this.t = this.title; 
     this.title = ""; 
     this.top = (a.pageY + yOffset); 
     this.left = (a.pageX + xOffset); 
     $("body").append('<p id="vtip">' + this.t + "</p>"); 
     $("p#vtip").css("top", this.top + "px").css("left", this.left + "px").fadeIn("slow") 
    }, function() { 
     this.title = this.t; 
     $("p#vtip").fadeOut("slow").remove() 
    }).mousemove(function (a) { 
     this.top = (a.pageY + yOffset); 
     this.left = (a.pageX + xOffset); 
     $("p#vtip").css("top", this.top + "px").css("left", this.left + "px") 
    }) 
}; 
jQuery(document).ready(function (a) { 
    vtip() 
}); 

不过,我已经在页面上发了一个帖子请求后,该功能不会使title = ""的更好看,他们只是看默认。

我的问题确实是,如何让上面的代码在内容被动态加载到页面后工作?

回答

1

绑定到元素的事件只会绑定到您运行代码时存在的元素。当您的函数在页面加载时运行时,通过您的ajax加载的任何新元素都不存在。

您有2个选择。

  1. 每当您加载包含vtip类的新元素时重新绑定事件。这将是对您的ajax成功回调中的vtip()的简单调用。
  2. 使用事件的委托方法重写您的代码。根据jQuery版本的jQuery方法将在(),委托()或活()
+0

非常感谢!有效 :) – Frank 2012-03-03 18:58:00