单击并添加到页面的元素?

时间:2012-06-13 10:47:49

标签: javascript jquery

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

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

//do delete

}

以上不起作用。

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

我试过

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

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

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

3 个答案:

答案 0 :(得分:1)

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

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

但如果你使用jquery 1.7

会更好

.on()事件处理程序

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

根据评论

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

答案 1 :(得分:1)

使用delegate()

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

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

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

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

请勿使用live()这是缓慢的,过时的和弃用的。

答案 2 :(得分:0)

而不是on使用delegatelive方法

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