2010-03-30 2 views
2

나는 다음과 비슷한 것을 가지고 있습니다 ... JSON에 파이썬 스크립트를 사용하여 채 웁니다.jquery 클릭하여 im을 숨기기 LI

<ul> 
<li id="p1" class="x">val1 <img id="ip1" class="redx" src="redx.gif"/></li> 
<li id="p2" class="x">val2 <img id="ip2" class="redx" src="redx.gif"/></li> 
<li id="p3" class="x">val3 <img id="ip3" class="redx" src="redx.gif"/></li> 
<li id="p4" class="x">val4 <img id="ip4" class="redx" src="redx.gif"/></li> 
</ul> 

나는에 ... 그것은에 전체 LI 셀을 숨길 수 있습니다 .. 빨간색 x 이미지를 클릭하면 일부 jQuery를하고 싶습니다.

을 내가 몇 가지를 시도했지만이 ...에 아무 소용이.

편집 : 모두 ..이게 작동하지 않는 것 같습니다. 이것은 근본적인 문제처럼 보입니다.

$(function(){ 
    function removeli() { 
     alert("got here" + this.id); 
    } 
    $("redx").click(removeli); 
}); 

최종 jquery 코드에 대한 아이디어가 있습니까? '는 <ul>가 변경되지 않을 경우 대리자를 사용하여

$(function() { 
    $('.redx').live('click', function() { 
     $(this).parent('li').hide(); // or .remove() 
    }); 
}); 

은 (에만 작동합니다에만 <li> :

답변

3

라이브 사용하여 클래스

$('.redx').live('click', removeli); 

업데이트 된 코드에 대한 . 접두사를 필요 그 안에) :

$(function() { 
    $('ul').delegate('img', 'click', function() { 
     $(this).parent('li').hide(); 
    }); 
}); 
+0

심지어 사실입니다. 구문을 수정 한 후에도 아무런 변화가 없습니다. 방화범이 끌려 와서 코드의 모든 리튬 코드에 onclick을 추가해야합니까? – Kirby

+0

은 클릭 처리기를 설정 한 후 행을 동적으로 추가하기 때문에 발생했을 가능성이 큽니다. @Tatu가 제안한대로 이벤트 핸들러를 추가하려면'live' 또는'delegate'를 사용하십시오. 새로 삽입 된 요소에 대해서도 작동합니다. – Anurag

+0

나는 마침내 TATU의 구문이 잘못된 것을 알아 냈습니다. 업데이트 해 주셔서 감사합니다. 모두 도와 주셔서 감사합니다! :) 문제 해결됨. – Kirby

0
$(".redx").click(function(){ 
    $(this).parent().hide(); 
}); 
+0

onclick doesnt가 ​​발사하는 것 같습니다. – Kirby