2012-07-12 3 views
2
$(document).ready(function() { 

    var clone = $("#me_flash_0").clone(true); 

    if($('video').attr('class') == "pause_0"){ 
      $("#me_flash_0").remove();  
    } 

    $('.top_item img').click(function(){ 
      $("#me_flash_0_container").html(clone); 
      $(this).hide();  
    }); 

} 

#me-flash_0<embed> 요소입니다. 그리고 #me_flash_0_container은 포장 용기입니다. 문제는 복제 된 개체가 비어있는 것입니다. html(clone)은 아무 효과가 없습니다.jQuery로 복제 및 삽입

방화 광은 어떤 오류도 표시하지 않습니다.

여기에 관련 HTML은

<div id="me_flash_0_container" class="me-plugin"> 
    <embed id="me_flash_0"> 
</div> 
<video class="pause_199" width="586px" height="440" src="some link" autoplay="true" tabindex="0" style="display: none;"></video> 

어떤 아이디어인가?

답변

1

이것은 jQuery 및 복제 객체 요소의 버그 인 것으로 보입니다.

http://bugs.jquery.com/ticket/10324

보고이 문제를 해결 작업의 가능한 방법은 새로운 객체를 복제하는이 텍스트 영역의 발()를 사용하여 다음 숨겨진 텍스트 영역에 객체의 부모 컨테이너의 콘텐츠를 복사하는 것입니다. @techfoobar 쓴 것처럼 Cloning a silverlight embed object results in an empty white element

+0

이것은 갈 길이 멀어 보인다! 고맙습니다. –

0

a) clone은 전체 jquery 확장 요소이며 html 문자열은 아닙니다. 당신이 .html(clone)

나 대신 .append(clone)을 할 경우는 cloneready(..) 기능 로컬 선언) 작동합니다. 클릭 이벤트 핸들러가 트리거 될 때 미리 알지 못하므로 전역 변수로 이동해야 할 수도 있습니다.

+0

정보를 제공해 주셔서 감사하지만 문제가 해결되지 않는 경우 –

+0

관련 HTML도 게시 할 수 있습니까? '.attr ('class') == "pause_0"를'.hasClass ('pause_0')'로 변경하는 것이 도움이 될 수있는 또 다른 해결책은 'video'요소에 여러 클래스가 있어도 작동 할 것이기 때문입니다.또한 여기서는 ''태그를 사용하고 있다고 가정합니다. 다른 선택자에서 '비디오'앞에 '#'또는 '.'을 놓쳤을 수도 있습니다. – techfoobar

+0

관련 html을 게시했습니다. if 조건에는 아무런 문제가 없습니다. –

1
$(document).ready(function() { var clone = $("#me_flash_0").clone(true); if($('video').attr('class') == "pause_0"){ $("#me_flash_0").remove(); } $('.top_item img').click(function(){ $("#me_flash_0_container").children().remove(); $("#me_flash_0_container").append(clone); $(this).hide(); }); });

, 당신은 jQuery를 객체를 추가 할 .html()을 사용할 수 없습니다

여기에 유사한 접근 방법을 참조하십시오. 자바 스크립트 끝 부분에 괄호가 없어졌습니다.

편집 : 비슷한 문제에 대해 this comment을 참조하십시오.

0

내가 그이 원인이 될 수 있습니다 볼 수있는 문제 ...

  • 당신은 준비가 DOM에 객체를 캐시합니다.
    해당 코드에서 시작하여 개체가 비어있는 것으로 보입니다. 변수에 캐싱 된 개체입니다. () </embed> 태그도 추가해야합니다 ().
    나는 아무 변화가 없다는 사실이 예상 아닌지 기능이 있다면 그렇게 확신하지 embed 요소에 표시하도록되어 모르겠어요 ..
  • $('video').attr('class')첫번째video 요소에 적용되는 클래스를 반환합니다 DOM. 예제 코드에서는 class_199입니다. 그러나 class_0과 비교하면 일치하지 않으며 #me_flash_0 요소가 제거되지 않습니다.