我正在使用http://webdeveloperplus.com/jquery/ajax-multiple-file-upload-form-using-jquery/中的脚本 我修改了onComplete以添加删除图像的链接。在remove_me()函数中,我想: 1.删除< li>单击该文件 2.通过ajax在服务器上调用PHP脚本,以便从服务器上删除该文件,因为它已经上传。
if(response==="success"){
$('<li></li>').appendTo('#files').html('<img src="./uploads/'+file+'" alt="" /><br />'+file+'<br />Click to Remove<img src="cross.png" onclick="remove_me(\'./uploads/'+file+'\')" />').addClass('success');
} else{
$('<li></li>').appendTo('#files').text(file).addClass('error');
}
在remove_me()函数中,我可以轻松获取图像名称,因为我通过onClick传递它,但我不知道如何删除&lt; li&gt;包含图像。 文件名将通过ajax调用传递给PHP函数。我知道该怎么做,它只是删除&lt; li&gt;我遇到了麻烦。
答案 0 :(得分:1)
如果您使用的是jQuery,则不应使用“onClick”之类的内联事件绑定。您可以使用标准的绑定事件方式,即:
$(function() {
$('img').click(function() {
// process here
})
})
因此,您可以访问任何相关的DOM元素。在您的情况下,您可以将父<li>
作为$(this).parent()
并将其与$(this).parent().remove()
删除;
ADDED:如果要以dinamically方式添加这些元素,则必须使用live
绑定事件,例如:
$(function() {
$('img').live('click', function() {
// process here
})
})
答案 1 :(得分:1)
我不确定你在这里展示的是什么它不起作用,因为我看不到remove_me()函数,但我会告诉你如何按照我的方式去做。
你可以在remove_me()函数中使用$(this),如下所示:
$(this).closest('li').remove();
这将从点击的位置开始,然后转到最近的li标签并将其删除。
(darnit两个人刚刚回答......我不会去看......得学会更快地输入lol)
答案 2 :(得分:0)
如果图像是LI标记内的唯一元素,则可以使用DOM删除图像的parentNode,从而删除LI。
https://developer.mozilla.org/En/DOM/Node.parentNode http://reference.sitepoint.com/javascript/Node/parentNode