2009-12-07 4 views
0

다음 코드를 사용하여 요소 집합 뒤에 클릭 가능한 이미지를 추가한다고 가정 해보십시오. 클릭 핸들러는 이미지를 클릭 할 때마다 발생하며 원하는 것이 아닙니다. 클릭 핸들러에서 .hide()를 사용하여 이미지를 숨기는 것이 하나의 방법이지만 클릭 핸들러에서 img 요소를 참조하는 방법을 알 수는 없습니다.클릭 핸들러를 실행 한 후 요소 숨기기

도움 말? 감사합니다

$(...) 
    .after($('<img src="..."/>') 
    .css("cursor","pointer") 
    .attr("title","Click here for ...") 
    .click(function(){ ... } 

답변

0

당신은 그것을 가져 오기 위해 이미지 고유 ID를 줄 수 :

$(...) 
    .after($('<img id="myimage" src="..."/>') 
    .css("cursor","pointer") 
    .attr("title","Click here for ...") 
    .click(function() 
    { 
     var img = $('#myimage'); 
    } 
+1

* 표시이 경우이 *이 후에 HTML을 추가로 선정 된 요소를 의미 - 예 : img SRC이없는 직선적 인 끝나는 이유입니다, 추가되는 무슨이다. – cgp

+0

jQuery가 "this"의 컨텍스트를 매우 직관적으로 변경하고 jQuery가 $ (this)로 감싸는 것을 인식하지 못했습니다! 이것은 정말 잘 디자인 된 라이브러리입니다. 감사! –

+1

정말입니까? http://www.learningjquery.com/2007/08/what-is-this에서 모든 클릭 핸들러의 "this"는 클릭 핸들러가 작성되는 DOM 요소를 나타냅니다. –

1

아마 것입니다 간단하고 두 개의 라인으로 그것을 깰 가장 읽을 수 :

var e = $('<img src="..."/>'); 
    $(...) 
    .after(e) 
    .css("cursor","pointer") 
    .attr("title","Click here for ...") 
    .click(function(){ ... use e here... } 

다음 예제에서 사용한 것처럼 다음을 사용할 수도 있지만

$('p') 
    .after($('<img src="..."/>')) 
    .css("cursor","pointer") 
    .attr("title","Click here for ...") 
    .click(function() { 
     $(this).next().css("border", "solid white 5px"); 

    }) 

그래서 의 niceness를 사용하여이을 사용하여 원하는 임시 요소없이 찾고있는 요소를 가져옵니다. http://jsbin.com/ulewo

+0

첫 번째 링크를 클릭하면 작동합니다. – cgp

1
$("#foo").click(function() { 
    $(this).hide(); /* This refers to the item(s) being clicked */ 
}) 
관련 문제