2011-05-13 3 views
2

과 협력하려면이 간단한 .replaceWith()을 얻을 수 없습니다. 도움이 되시면 감사하겠습니다..hover() 및 .replaceWith()를 결합하십시오.

마우스를 가져 가면 텍스트가 확장으로 바뀌고 마우스를 떼면 SHOWS로 돌아갑니다. EXPAND로 바꾸려면 텍스트를 가져올 수 있지만 원래 SHOWS로 돌아가려면 텍스트를 가져올 수 없습니다.

JSFiddle 코드는 누구나 충분히 볼 수 있습니다. 당신이 .replaceWith() 방법을 사용하면

$(document).ready(function() { 
    $("p").hover(
     function() { 
     $('#shows').replaceWith('<h2>Expand</h2>'); 
     }, 
     function() { 
     $('#shows').replaceWith('<h2>Shows</h2>'); 
     } 
    ); 
}); 
+0

감사 @JasCav을 : 당신이 원하는 무엇

은 (.html() 사용) #shows의 내부 HTML을 대체 할 수 있습니다. :) –

답변

5

당신이이 id 속성을 잃고을 교체 할 때 문제입니다. 따라서 함수의 hover() 이벤트가 발생해도 요소 #shows을 찾을 수 없습니다.

대신을 시도

// Change H1 text to "EXPAND" when hovered on, and go *back* to "SHOWS" when the mouse leaves 

$(document).ready(function() { 
    $("p").hover(
     function() { 
     $('#shows').text('Expand'); 
     }, 
     function() { 
     $('#shows').text('Shows'); 
     } 
    ); 
}); 

당신은 항상 다음과 같은 예에서 .text() 또는 .html()를 사용해야합니다 당신은 오히려 내부 비트에게 TEXT 또는 <h2> 태그에 포함 된 HTML을 변화하고 싶은 acctually 모든 때문에 전체 요소보다

당신이 replaceWith를 사용하려면

:

$(document).ready(function() { 
    $("p").hover(
     function() { 
     $('#shows').replaceWith('<h2 id="shows">Expand</h2>'); 
     }, 
     function() { 
     $('#shows').text('<h2 id="shows">Shows</h2>'); 
     } 
    ); 
}); 
+0

굉장 토마스. 고마워 고마워. 마지막에 가르침을 받으면 즉각적인 문제를 해결할 수있었습니다. 대단히 감사합니다. – saltcod

+0

도움이 된 것을 기쁘게 생각합니다. :) –

+0

쥐! 마지막 부분을 잊어 버렸습니다 : 어떻게하면 바닥 글에 설정되어있는 위/아래 동작을 애니메이션으로 만들 수 있습니까? [JSFiddle] (http://jsfiddle.net/GTwuC/1/)? 이것은 실제로 내가 조합 할 수 없었던 jQuery의 상당 부분에 속합니다. 나는 결코 사기를 피하는 방법을 알아낼 수 없었다. IE : 상자를 위아래로 이동하는 것은 쉽지만, 거기에'.animate() '를 어떻게 넣을지 나는 볼 수 없다. 어떤 제안이 있어도 다시 한번 감사드립니다. – saltcod

0

, 요소 #shows는 더 이상 존재하지 않습니다 더 이상 교체 할 수 없습니다 :

1

.replaceWith() 완전히 원래의 요소 (#shows를) 대체 할이 ->id=#shows에 더 이상 요소는 (두 번째 시도는 실패합니다)을 찾을 수 있습니다.

$(document).ready(function() { 
    $("p").hover(
     function() { 
     $('#shows').html('<h2>Expand</h2>'); 
     }, 
     function() { 
     $('#shows').html('<h2>Shows</h2>'); 
     } 
    ); 
});