2013-04-15 2 views
-1

jquery 함수의 두 번째 부분은 한 번만 실행됩니다. 슬라이드 js 부분 $('#slides').slidesjs()은 첫 번째 클릭에서 한 번 작동하고 두 번째 등에서는 작동하지 않습니다. 경고 부분과 htlm 교체는 괜찮습니다. 도움을 주시면 감사하겠습니다. 첫 번째 클릭에 감사일부 jQuery 함수는 한 번만 실행됩니다. 슬라이드 js는 한 번만 호출됩니다.

$(document).ready(function(){ 
    $(".linkA").live("click", function(){ 
     $("#slides").html(""); 
     var jQueryfilterType = (jQuery(this).parent().parent().html()); 
     $("#slides").html(jQueryfilterType); 
     $("#slides a").contents().unwrap(); 
     $("#slides li").contents().unwrap(); 

     alert("test"); 

     $('#slides').slidesjs({ 
     width: 940, 
     height: 528, 
     navigation: { 
      effect: "fade" 
     }, 
     pagination: { 
      effect: "fade" 
     }, 
     effect: { 
      fade: { 
       speed: 400 
      } 
     } 
     }); 
    }); 
}); 
+1

HTML을 추가 할 수 있습니까? '#links '는'.linkA' 안에 중첩되어 있습니까? – Steve

+0

이것이이 플러그인을 참조한다고 가정하십니까? http://www.slidesjs.com/ –

+0

당신이'.unwrap()'을 할 때 DOM *에서 부모 엘리먼트를 삭제한다는 것을 깨닫는다. 나는 당신의'#slides> a'가 부모'li'를 가지고 있고 그것을 제거하려고합니다. 'ul'에'anchor elements'를 남깁니다. – Ohgodwhy

답변

2

, 당신은 (html("")를 호출하여)을 #slides 요소를 비우는하고 새로운 내용으로 다시 채 웁니다. 그런 다음 slidesjs()으로 전화하십시오. 그래서 이것은 잘 작동합니다. 두 번째 클릭으로 #slides을 다시 비우고 새 콘텐츠를 추가 한 다음 slidejs() 번으로 다시 전화 해보십시오. 그러나 이번에는 slidesjs이 이미 해당 요소를 한 번 초기화 했으므로 내용이 변경 되었더라도 다시는 수행하지 않습니다.

이 문제를 해결하려면 remove#slides 요소를 완전히 원하고 새 (초기화되지 않은) 요소를 다시 추가해야합니다. 이렇게하면 slidesjs()이 새 요소/콘텐츠에서 올바르게 작동합니다.

+0

방금이 문제에 대해 이미 많은 시간과 추가 골칫거리를 저장했습니다. 정말 고마워. –

관련 문제