2012-04-25 4 views
1

양식 제출시 양식이 포함 된 LI가 있습니다. 부모 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()은 요소의 직접적인 부모 만 가져 오기 때문에 사용하면 안됩니다.

그냥 $.fadeOut()을하는 대신, 현재의 아래에있는 <li> 요소를하려면, 대신에이 작업을 수행 : 0으로 요소의 높이를 애니메이션합니다

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

는 그것을 "슬라이딩" . ,

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

당신은 부모의 부모를 얻을 수 있습니다 :

+0

아 덕분에 너무 많은! 아래의 li 항목을 천천히 움직여서 '점프'와 반대되는 여백을 차지할 수있는 방법이 있습니까? @jamwaffles – Liam

+0

또한 설명해 주신 많은 분들께 감사드립니다. – Liam

+1

@Liam'fadeOut' 대신'slideUp' 사용 >> http://jsfiddle.net/skram/uAZ5Z/6/ << –

2

jsFiddle (http://jsfiddle.net/uAZ5Z/9/는)

난 당신이 같은 페이지에 남아 있도록 대신 "버튼", "제출"을 유형을 변경 또는 가장 가까운 리를 찾을 수 :

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

관련 문제