2012-12-15 1 views
0

다른 페이지에서 HTML을로드하는 데 jQuery 플러그인 easytabs를 사용하고 있습니다. HTML은 jQuery flexslider로 구성 될 수 있지만 JavaScript가 이미 실행 된 이후로로드 된 후에 슬라이더가 작동하지 않습니다. 나는과 같이, 아약스 링크를 통해로드를 클릭하면 flexslider를 호출 시도ajax를 통해로드 된 Flexslider

<ul class="portfolio-thumbnails"> 
    <li><a href="portfolio.html #item1" data-target="#item1">Load via ajax</a></li> 
</ul> 

<div class="panel-container"> 
    <div id="item1" class="portfolio-item"></div> /* The slider loaded from the ajax call will be appended to this div */ 
</div> 

: 여기 내 코드의

$(".portfolio-thumbnails li a").click(function() { 
    $('.flexslider').flexslider({ 
     animation: "slide" 
    }); 
}); 

을 ...하지만 두 번째 시간에만 작동하는 것이 내가 클릭하면 . 아마 Ajax를 통해 HTML을로드하기 전에 flexslider 스크립트가 호출되고있는 것 같습니다. 또한 외부 페이지 (portfolio.html)에서 flexslider 스크립트를 호출하려고 시도했지만 작동하지 않습니다.

아이디어가 있으십니까?

답변

1

간편한 탭 아약스 요청의 success 콜백에 넣을 수 있습니까?

.bind('easytabs:ajax:complete', function() { 
    $('.flexslider').flexslider({ 
     animation: "slide" 
    }); 
    }); 

문서에 event-hooks에서 찾았습니다 : 당신의 easytab 이벤트에 다음과 같은 추가

응답이 탭을 클릭하면로드되지하려면

enter image description here

+0

것은 내가 없다는 것입니다 그런 아약스 요청을해라. '$ ('# 포트폴리오 - 탭') easytabs ({ transitionIn : 나는 easytabs 다음과 같습니다 jQuery 플러그인을 사용합니다. 'slideDown', transitionOut 'slideUp', 축소 : 사실, updateHash : false }); 그래서 내 성공/완료 코드를 넣을 곳이 없습니다. – transbetacism

+0

간편한 탭에 맞게 답변을 업데이트했습니다. 그래도 못 받으시면 easytab 이벤트 콜을 봐야 할 것입니다. –

+0

Tim, 그 덕분에! 여기 내 작업 코드 : $ ('# portfolio-tabs'). easytabs(); flex Slider ({ 애니메이션 : "슬라이드" }), }) $ ('# portfolio-tabs'). ; – transbetacism