加载ajax后绑定自定义事件处理程序

加载ajax后绑定自定义事件处理程序,ajax,bind,lightbox,jquery,Ajax,Bind,Lightbox,Jquery,具体来说,我希望将lightbox绑定到一个特定的元素。通常我会这样做:$('a.lightbox').lightbox()但这不起作用,因为我正在用AJAX进行一些加载。查看jQuery API,我找到了.bind()和.live(),但在AJAX.load()调用之后执行$('a.lightbox').bind('lightbox')时,我没有得到任何东西 我缺少什么?您需要添加一个回调函数来处理这个问题 $("#div").load(url, {}, function(){ $('a.li

具体来说,我希望将lightbox绑定到一个特定的元素。通常我会这样做:
$('a.lightbox').lightbox()但这不起作用,因为我正在用AJAX进行一些加载。查看jQuery API,我找到了
.bind()
.live()
,但在AJAX
.load()
调用之后执行
$('a.lightbox').bind('lightbox')
时,我没有得到任何东西


我缺少什么?

您需要添加一个回调函数来处理这个问题

$("#div").load(url, {}, function(){ $('a.lightbox').lightBox(); });

Bind对您没有帮助,因为事件不会触发事件。

另一种方法是绑定到dom中较高的元素并检查目标类型。例如:

$('#div').bind('click', function (event) {
    target = $(event.target);
    if (target.hasClass('lightbox')) {
        // do stuff here
    }
});

不要往上走太远,否则你会被点击过多。

太完美了。很好用,我想我根本不需要使用.bind()。另外,这也是为什么我会与bind混淆的原因——我知道它需要来自API的函数,但我没有任何这样的函数。