2011-09-10 6 views
1

클릭 한 div의 위치를 ​​알아야하는 함수를 작성하고 있습니다.

클릭 한 개체의 위치를 ​​자바 스크립트 변수로 가져올 수 있는지 궁금합니다.

여기 코드가 있습니다.

HTML

<area shape="rect" coords="103, 0, 213, 25" href="#" onClick="swap3($(this),'product-details','product-specs');"> 

자바 스크립트 :

function swap3(currentDivId ,oldDivId, newDivId) { 
    var oldDiv = currentDivId.nextAll("div." + oldDivId); 
    var newDiv = currentDivId.nextAll("div." + newDivId); 
    oldDiv.style.display = "none"; 
    newDiv.style.display = "block"; 
} 

답변

0

$()은 (당신이 방법, 특성 등의 작업을 할 수있는 객체 등) 당신이 그것에 변수를 설정하면, 변수가 jQuery를 같이 작동해야 DOM 요소를 반환 -Object 올바르게. 하지만 내 경험에 의하면, 그 때로는 가 아니면! 가장 좋은 방법은 jQuery-selector ($)로 변수를 가져 오는 것입니다. 코드가 올바르지 만 변경 사항을 적용하면 더 좋을 것입니다.

function swap3(currentDivId ,oldDivId, newDivId) { 
    var oldDiv = $(currentDivId).nextAll("div." + oldDivId); 
    var newDiv = $(currentDivId).nextAll("div." + newDivId); 
    $(oldDiv).css({"display" : "none"}); 
    $(newDiv).css({"display" : "block"}); 
} 
+0

고마워, 아직 작동하지 않지만 여기에 질문을 이동했습니다 ... http://stackoverflow.com/questions/7368995/why-doesnt-my-div-swap-by-class-work/7369016#7369016 및 수도 다시 그것을 다시 언급해야한다. 건배! –

+1

확인. 나는 링크를 볼 것이며, 가능하다면 나는 당신을 도울 것입니다. –

+3

올바르지 않습니다. '$ (x)'는 주어진 DOM 요소 * ('x'에 의해 참조 된 요소)에서 * jQuery 객체 *를 반환합니다. 'this'는 전통적인 이벤트 콜백에서 이벤트를 발생시키는 요소로 설정됩니다. –

3

this 현재 요소를 의미합니다.

jQuery에서 요소를 가져 오는 데 $()을 사용하므로 $(this)은 jQuery에 해당하는 바닐라 JS의 this을 반환합니다.

<area shape="rect" coords="103, 0, 213, 25" href="#" onClick="swap3(this,'product-details','product-specs');"> 
+0

감사합니다. 이 상황에서 '이'의 가치는 무엇입니까? 이드의 ? –

+1

경고를하면 Object [HTMLObject] - DOM 요소, 태그에 대한 모든 정보, 자식 및 속성 등을 포함하는 내용입니다. – Joe

+0

올바르지 않습니다. '$ (this)'는 하나의 요소를 포함하는 * jQuery 객체 *를 반환합니다. 이것은'this'의 현재 평가입니다. –

관련 문제