2012-12-22 3 views
0

$('.mp3').show();이 실행 된 후 다시 실행하려면이 코드가 필요합니다. 이 사용자가 다음 다시 원하는 경우 사용자의 요청을하지만, 음악이 다시 재생 될 때 나 웹 사이트에서 노래를 제거하고이 모든 조각이하고있는 어떤내 jquery 스 니펫에 루프가 필요합니다

$('.mp3').click(function() { 
    $(this).toggle(function() { 
     $('object').remove(); 
     $('.mp3-0').show(); 
    }); 
}); 

$('.mp3-0').click(function() { 
    $(this).toggle(function() { 
     $('#mp3obj').replaceWith('<object width="0" height="0"> <param name="src" value="musicasite.mp3"> <param name="autoplay" value="false"> <param name="controller" value="true"> <param name="bgcolor" value="#FFFFFF"> <embed src="musicasite.mp3" autostart="false" loop="false" width="0" height="0" controller="true" bgcolor="#FFFFFF"></embed> </object>'); 
     $('.mp3').show(); 
    }); 
});​ 

.

그러나이 코드를 모두 실행하면 작업이 중지됩니다.

내가 원했던 것 : 버튼을 클릭하고 코드가 실행되기 전에 전체 HTML 파일을 설정해야합니다.

----- 예는 여기에서 볼 수 있습니다

편집 ------ : http://dev.webtoad.com.br/toquedemagica/2012/
페이지는 브라질 포르투갈어,하지만 당신은 'Parar의 무시 카'와 'Tocar의 무시 카 클릭하면 '당신은 내가 지금까지 성취 한 것을 볼 수 있습니다.

1 You'r 토글 바로 사용하지 :

+0

내가 돈 토글()은 그런 식으로 작동한다고 생각하고, 내가하려는 일을하려는 경우 토글() 버전은 사용되지 않습니다. – adeneo

+0

잘 모르겠다. 아직 jQuery를 배우고 있고 api.jquery.com을 많이 사용하고 있으므로 사용하는 것이 좋다고 생각했다. 그러나 그렇지 않다? 무엇을 사용해야합니까? – gustavobianco

+0

정확히 toggle() 함수로 무엇을하려합니까? sidenote로서 요소를 제거하면 모든 요소가 사라지고 모든 이벤트 핸들러를 포함하여 요소를 다시 만들게됩니다. – adeneo

답변

2

당신은 두 개의 큰 실수를하고있다. 버튼 동작이 아닌 버튼 가시성 만 토글하고 싶습니다. 그것은 $(this).toggle()이어야하고 나머지 작업은 토글 기능 외부에 있어야합니다. 생각한 두 개의 다른 버튼을 클릭 할 때 예기치 않은 표시/숨기기 동작으로 나타날 수 있기 때문에 토글을 전혀 사용하지 않아도됩니다. .mp3-0 클릭에

2 (두 번째 클릭) 당신은 (재)를 <object> 다시 #mp3obj 내부 이전의 클릭으로 제거 당신이 그것을 대체하지 추가 할. 이것이 코드가 3 번만 실행되는 이유입니다.

중지 - <object>을 제거합니다.

시작 - 을 (를) <object> (으)로 대체합니다.

중지 - <object>을 다시 제거합니다.

시작 - ... <object>로 대체 #mp3obj을 찾을 수 없습니다 (당신이 그것을 대체!) - 기능

이 대신하려고 ... 작동을 멈 춥니 다 : '

$('.mp3').click(function() { 
    $(this).hide(); 
    $('object').remove(); 
    $('.mp3-0').show(); 
}); 

$('.mp3-0').click(function() { 
    $(this).hide(); 
    $('#mp3obj').html('<object width="0" height="0"> <param name="src" value="musicasite.mp3"> <param name="autoplay" value="false"> <param name="controller" value="true"> <param name="bgcolor" value="#FFFFFF"> <embed src="musicasite.mp3" autostart="false" loop="false" width="0" height="0" controller="true" bgcolor="#FFFFFF"></embed> </object>'); 
    $('.mp3').show(); 
});​ 
+0

큰 도움을 주셔서 감사합니다. 정말 고맙습니다. – gustavobianco

+0

문제 없으니 기꺼이 도와 드리겠습니다. 행운을 빈다. – nienn

관련 문제