1

用户上传图片后,我会在页面上动态添加删除按钮。

$('.galleryImage .delete').bind('click', function() {

//do delete

}

以上不起作用。

据我了解,这是因为删除按钮是在创建后添加到页面中的。

我试过了

$('body').on('click', '.galleryImage .delete', function() {

但这仅适用于 jquery 1.7+,我需要使用 1.6。

有什么想法可以让它发挥作用吗?

4

3 回答 3

1

正如您想在 jQuery 1.6 中使用的那样,您可以使用.delegate()事件处理。

$('.galleryImage').delegate('.delete', 'click', function() {

但如果你使用 jquery 1.7 会更好

.on()事件处理程序

$('.galleryImage').on('click', '.delete',function() {

根据评论

如果.galleryImage是动态添加的,那么你应该使用一个Static-element是容器的容器.galleryImage,这意味着容器不应该是动态的。

于 2012-06-13T10:48:40.963 回答
1

使用delegate()

$('.galleryImage').delegate('.delete', 'click', function() {
    //do delete
}

on()如果您使用的是 jQuery 1.7+,或者使用委托选择器:

$('.galleryImage').on('click', '.delete', function() {
    //do delete
}

如果.galleryImage元素也是动态添加的,则应使用与最近的非动态元素相关的选择器。

不要使用live()它缓慢、过时且已弃用。

于 2012-06-13T10:49:55.120 回答
0

而不是on使用delegatelive方法

http://api.jquery.com/live/
http://api.jquery.com/delegate/

于 2012-06-13T10:49:38.800 回答