我在用户上传图片后动态地向页面添加删除按钮。
$('.galleryImage .delete').bind('click', function() {
//do delete
}
以上不起作用。
据我了解,这是因为删除按钮会在创建后添加到页面中。
我试过
$('body').on('click', '.galleryImage .delete', function() {
但这仅适用于jquery 1.7+,我需要使用1.6。
我有什么想法可以让它发挥作用吗?
答案 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
使用delegate
或live
方法