2012-04-25 118 views
1

我有一个包含表单,在表单提交我想淡出父母李,我一直在尝试没有运气,我也做了一个基本形式的小提琴,任何人都可以给我一个关于它如何完成的想法吗?淡出父母li点击

http://jsfiddle.net/uAZ5Z/

<li> 
<form> 
    <input type='submit' value='delete'> 
</form> 
</li> 

JQ:

$('input').click(
    $(this).fadeOut(); 
) 

回答

5

试试这个:

$('input').click(function() { 
    $(this).closest('li').fadeOut(); 
}); 
​ 

你在你的代码的两个错误:

  1. 必须致电$.click()内的某个功能(匿名或不可以)。
  2. $(this)在此上下文中引用<input>元素。要引用它最接近的<li>,则需要使用$.closest()。请注意,您不应使用$.parent(),因为它只能获得元素的直接父级。

为了使当前下方的任何<li>元素,而不是仅仅做$.fadeOut(),而是执行此操作:

$('input').click(function() { 
    $(this).closest('li').slideUp(); 
}); 

这将动画元素的高度为0,“滑”起来。

+0

啊非常感谢!有没有办法让下面的li项目慢慢地动起来占据白色空间而不是“跳跃”? @jamwaffles – Liam 2012-04-25 19:30:28

+0

此外,非常感谢您的解答,帮助! – Liam 2012-04-25 19:31:07

+1

@Liam使用'slideUp'而不是'fadeOut' >> http://jsfiddle.net/skram/uAZ5Z/6/ << – 2012-04-25 19:32:17

2

的jsfiddle(http://jsfiddle.net/uAZ5Z/9/

我改变了类型为“按钮”,而不是“提交”,让您保持在同一页上:

<li> 
    <form> 
     <input type='button' value='delete'> 
    </form> 
</li>​ 

您可以得到父母的父母,或者找到最接近李:

$('input').click(function() 
{ 
    $(this).closest("li").fadeOut(); 
});