添加live到jquery函数

时间:2011-12-29 21:04:11

标签: javascript jquery

如何将.live添加到以下函数中?

$(document).ready(function(){
$.fn.vAlign = function() {
    return this.each(function(i){
        var ah = $(this).height();
        var mh = (368 - ah) / 2;
    $(this).css('margin-top', mh);
    });
};
$('div.slideshow img').vAlign();
});

我需要添加live,因为jQuery正在生成div.slideshow img。除非在脚本执行之前div已经在HTML中,否则该函数似乎不起作用。

2 个答案:

答案 0 :(得分:2)

您可以使用livequery

 $('div.slideshow img').livequery(function(){ $(this).vAlign(); });

这将使得vAlign()在任何与你的选择相匹配的元素上执行,并且在任何时候都可以执行。

答案 1 :(得分:1)

在这种情况下,我认为.live.delegate.on不会对您有所帮助。您可以做的是在ajax响应成功并且图像已注入DOM后,在回调中运行$('div.slideshow img').vAlign();