2011-03-11 3 views
0

일부 코드는 .load() 함수로로드하려고하는데 여기에 코드가 있습니다. jQuery 변수 문제

$(window).load(function() { 

    $('.spotlight').append('<div class="caption"></div>'); 
    $('.spotlight .caption').hover(function() { 
     $(this).animate({ top : '-=50px' }, 150)}, function() { 
     $(this).animate({ top : '+=50px' }, 150)} 
    ); 

    $('.caption').load($(this).parent().data('who')+'.html'); 

}); 

하지만 HTML에서

나는

<div class="spotlight" who="student"> 
     <img src="sga_small.jpg" /> 
</div> 


<div class="spotlight" who="staff"> 
    <img src="sga_small.jpg" /> 
</div> 

을하지만 undefined.html에로드하려고합니다. 어떻게 해결할 수 있을까요?

$(this).parent().attr('who') 

것은이 부모가 속성 누가에 값이 있는지 확인하십시오 : 다음은이 정의되지 않은 반환 http://www.coralspringshigh.org/demo/

+0

는 당신이 우리에게 당신이에서'.load()를'호출하는 모든 이벤트를 줄 수 있습니까? 'this'가 그 함수의 컨텍스트 없이는 무엇인지 알기가 어렵습니다 ... – gnarf

+1

캡션 클래스 –

+0

을 가진 요소와 함께 완전한 HTML을 붙여 넣을 수 있습니까? 죄송합니다. 나머지 코드도 추가했습니다. – Koalatea

답변

0

먼저 생각, 당신은 당신이 코드의 자세한 내용을 포함하도록 업데이트되었습니다 이제 $(this).parent().data('who')+'.html'

을 사용할 수 있습니다, 그런 식으로 대신 whodata-who="student"를 사용한다,이 결함은 더 분명하다. this은 실제로 window입니다. 왜냐하면 사용자가 $(window).load() 처리기 내부에 있기 때문입니다. 대신이 같은 일을보십시오 :

// fires on document ready, not quite window load, but better: 
$(function() { 
    $('.spotlight').each(function() { 
    var spot = $(this), 
     caption = $("<div class='caption'></div>").appendTo(spot); 

    caption.load(spot.data('who') + '.html'); 
    spot.hover(function() { 
     caption.animate({ top : '-=50px' }, 150) 
    }, function() { 
     caption.animate({ top : '+=50px' }, 150) 
    }); 
    }); 
}); 
+1

또한 나는'요소'속성이 어떤 요소에 유효하다고 생각하지 않습니다. 그러나 데이터 - {여기에는 무엇이든}이 있습니다. – nzifnab

+0

는 여전히 동일한 문제를 제공합니다 – Koalatea

+0

@Koalatea - 원래 질문에서 더 많은 정보를 제공해야합니다. 의견을 참조하십시오 .... – gnarf

0

기회가있는 페이지로 연결되는 링크입니다.

+0

하지만, who 속성을 가진 두 부모, 그것을 정의되지 않은 – Koalatea

0

이 시도 :

$('.caption').each(function() { 
         $(this).load($(this).parent().attr('who') + '.html'); 
        }); 
+0

그 문제는 동일한 파일로 두 .captions을 모두로드한다는 것입니다. – Koalatea

+0

여전히 같은 문제가 있습니다 : \ – Koalatea