2013-12-11 3 views
1

코드 :스왑 텍스트는

var loved = false; //set status 
    $('a.loveit').on('click',function(event){ 
     event.preventDefault(); 
     loved = !loved; // toggles clicked state so false becomes true. 
     var heart = $('<i class="icn-heart"></i>'); 
     if(loved){ 
       $('.love-text').transition({opacity: 0, scale: 0}, 100, 'easeOutBack', function() { 

       var text = $('div.love-text'); 
       text.remove(heart); 
       console.log('remove heart'); 
       text.html("<strong>LOVED!</strong>"); 

       $('.love-text').transition({opacity: 1, scale:1}, 500, 'easeOutBack'); 
      }); 
     } 
     else{ 
       $('.love-text').transition({opacity: 0, scale: 0}, 100, 'easeOutBack', function() { 

       var text = $('div.love-text'); 
       text.append(heart); 
       console.log('add heart'); 
       text.html("<strong>LOVE</strong>"); 

       $('.love-text').transition({opacity: 1, scale:1}, 500, 'easeOutBack'); 
      }); 
     } 

시나리오는 처음을 클릭하면,에 원래 "사랑"스왑 "을 사랑"이다. 그런 다음 동일한 영역에서 두 번째로 클릭하면 원본 텍스트 "Love"으로 다시 전환됩니다.

나는 이것을 시도했으나 버튼을 클릭 할 때 텍스트가 사라진 다음 "uncaught typeerror: object [object object] has no method ' replace '이라는 콘솔을 확인했다. 나는 그것이 무엇을 의미하는지 모른다. 나는 또한 스택 오버플로를 통해 찾고 일부가 작동할지 모르지만 if/else 조건부가 내 용량 내에서 좀 더 이해하기 쉬울 것이라고 생각했습니다.

도움말 및 안내를 보내 주시면 감사하겠습니다.

+0

문제점을 재현하려고합니다. 그러나 "전환"기능을 찾을 수 없기 때문에 작동시킬 수 없습니다. 어떤 라이브러리를 사용하고 있습니까? 당신은 또한 html을 제공하거나이 바이올린을 uptdate 할 수 있습니까? http://jsfiddle.net/Xwtav/ – RononDex

+0

@RononDex - 감사합니다. http://ricostacruz.com/jquery.transit/에서 대중 교통 플러그인을 사용하십시오. 나는 바이올린에있는 html을 업데이트했다. http://jsfiddle.net/Xwtav/1/ – kittymeows

답변

0

문제를 해결할 수 있다고 생각합니다. text.append(heart);text.remove(heart);을 삭제했습니다. 또한 코드가 실행되기 전에 dom이로드되었는지도 확인했습니다.

http://jsfiddle.net/Xwtav/5/

+0

예를 보았지만 문제는 심장 아이콘이 원래 상태로있을 것이고 클릭 후 심장 아이콘이 제거되고 텍스트가 "사랑받는"것으로 변경된다는 것입니다. 그런 다음 다시 클릭하면 심장 아이콘이 기본 상태로 다시 추가되고 텍스트가 다시 "사랑"으로 변경됩니다. 불가능한가요? – kittymeows

+0

예, 새로운 피들 (http://jsfiddle.net/Xwtav/5/)을 확인하십시오. 나는 "text"div에서 아이콘을 옮기고'.toggle()'을 사용하여 아이콘을 숨기거나 표시했다. – RononDex

+0

바이올린에서 예제를 보았다. 그것은 바로 심장 아이콘에 적용됩니까? 당신의 모범을 따르려고 몇 분만 기다려주십시오. 감사합니다. – kittymeows

0

왜 onclick 처리기에서 텍스트가 포함 된 div를 제거 하시겠습니까?

것은 여기 데모 이후 http://loadmycode.com/build/x1dcI2Xr8/7
, 내가 함수 .transition를 찾을 수 없습니다()이며,이 라인은 내가 변경 한 클릭 이벤트 기능

text.remove(heart); 

를 형성 제거하십시오, 나는 그것을 대체했다. animate()

+0

심장 아이콘을 제거하고 텍스트를 클릭 할 때 "사랑받는"표시가 필요하다. 두 번 클릭하면 심장 아이콘이 표시되고 "사랑"이 표시됩니다. – kittymeows