2012-04-25 115 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(); 
});