我会尽力解释这个,因为我不是开发人员。
基本上我在我工作的网站上使用jquery UI标签插件,共有3个标签。在这些标签的每一个中都会有一个可以滚动5张幻灯片的柔性滑板。
还有一个标签散列系统,它是为我们开发的,允许从URL到各个标签内容区域的深层链接。
我遇到的问题是,如果某人直接链接到第二个或第三个选项卡,则第一个选项卡上的弹性滑块并不总是显示其内容。这个盒子里有导航和放大器。分页,但实际上没有内容显示。只有在通过URL链接到第二个或第三个选项卡时才会出现这种情况。如果您通过URL链接到第一个选项卡,则所有flexsliders都会相应地工作。
基本上,jQuery选项卡需要与Flexslider& URL深层链接。任何建议表示赞赏!
这是我正在使用的JS代码:
<!-- Tabs configuration -->
<script type="text/javascript">
$(function() {
$( "#tabs" ).tabs();
});
// Flexslider configuration (updated 24/02/2014)
var sliderinit = function(t){
$('#' + t + ' .flexslider').flexslider({
animation: "slide",
pauseOnAction: true,
pauseOnHover: true,
slideshowSpeed: 9000,
animationSpeed: 500,
randomize: true,
animationLoop: true
});
}
$(window).load(function() {
sliderinit('tabs-1');
});
$(document).on('click', '.ui-tabs-anchor', function () {
var t = $(this).attr('href').replace('#', '');
sliderinit(t);
});
//<!-- jQuery Back Button configuration (BBQ) -->
$(function(){
var tabs = $('.ui-tabs'),
tab_a_selector = 'ul.ui-tabs-nav a';
tabs.tabs({ event: 'change' });
tabs.find( tab_a_selector ).click(function(){
var state = {},
id = $(this).closest( '.ui-tabs' ).attr( 'id' ),
idx = $(this).parent().prevAll().length;
state[ id ] = idx;
$.bbq.pushState( state );
});
$(window).bind( 'hashchange', function(e) {
tabs.each(function(){
var idx = $.bbq.getState( this.id, true ) || 0;
$(this).find( tab_a_selector ).eq( idx ).triggerHandler( 'change' );
var t = $(this).find( tab_a_selector ).eq( idx ).attr('href').replace('#', '');
sliderinit(t);
});
})
$(window).trigger( 'hashchange' );
});
HTML:
<div id="tabs-1">
<div class="flexslider-container">
<div id="main-slider" class="flexslider">
<ul class="slides">
<li id="one"></li>
<li id="two"></li>
<li id="three"></li>
<li id="four"></li>
<li id="five"></li>
</ul>
</div> <!-- END FLEX SLIDER -->
</div><!-- END OF FLEXSLIDER CONTAINER -->
</div> <!-- END OF TABS 1 -->
<!-- TAB 2 -->
<div id="tabs-2">
<div class="flexslider-container">
<div id="main-slider1" class="flexslider">
<ul class="slides">
<li id="one"></li>
<li id="two"></li>
<li id="three"></li>
<li id="four"></li>
<li id="five"></li>
</ul>
</div> <!-- END FLEX SLIDER -->
</div> <!-- END OF FLEXSLIDER CONTAINER -->
</div> <!-- END OF TABS 2 -->
<!-- TAB 3 -->
<div id="tabs-3">
<div class="flexslider-container">
<div id="main-slider2" class="flexslider">
<ul class="slides">
<li id="one"></li>
<li id="two"></li>
<li id="three"></li>
<li id="four"></li>
<li id="five"></li>
</ul>
</div> <!-- END FLEX SLIDER -->
</div> <!-- END OF FLEXSLIDER CONTAINER -->
</div> <!-- END OF TABS 2 -->
</div> <!-- END OF TABS -->
答案 0 :(得分:0)
JS代码:
$(function() {
var slider2_initialized = false;
var slider3_initialized = false;
$( "#tabs" ).tabs({
activate: function( event, ui ) {
//console.log("ui = ");console.log(ui);
var tab_id = $(ui.newPanel).attr('id');//alert(tab_id);
if(tab_id == "tabs-2" && slider2_initialized == false)
{
$('#flexslider2').flexslider({
animation: "slide"
});
//update initialization flag to true
slider2_initialized = true;
}
else if(tab_id == "tabs-3" && slider3_initialized == false)
{
$('#flexslider3').flexslider({
animation: "slide"
});
//update initialization flag to true
slider3_initialized = true;
}
}
});
$('#flexslider1').flexslider({
animation: "slide"
});
});
HTML:
<div id="tabs">
<ul>
<li><a href="#tabs-1">Tab 1</a></li>
<li><a href="#tabs-2">Tab 2</a></li>
<li><a href="#tabs-3">Tab 3</a></li>
</ul>
<div id="tabs-1">
<p>
<div id="flexslider1">
<ul class="slides">
<li><img src="http://bxslider.com/images/730_200/tree_root.jpg" title="Funky roots" /></li>
<li><img src="http://bxslider.com/images/730_200/hill_road.jpg" title="The long and winding road" /></li>
<li><img src="http://bxslider.com/images/730_200/trees.jpg" title="Happy trees" /></li>
</ul>
</div>
</p>
</div>
<div id="tabs-2">
<p>
<div id="flexslider2">
<ul class="slides">
<li><img src="http://bxslider.com/images/730_200/tree_root.jpg" title="Funky roots" /></li>
<li><img src="http://bxslider.com/images/730_200/hill_road.jpg" title="The long and winding road" /></li>
<li><img src="http://bxslider.com/images/730_200/trees.jpg" title="Happy trees" /></li>
</ul>
</div>
</p>
</div>
<div id="tabs-3">
<p>
<div id="flexslider3">
<ul class="slides">
<li><img src="http://bxslider.com/images/730_200/tree_root.jpg" title="Funky roots" /></li>
<li><img src="http://bxslider.com/images/730_200/hill_road.jpg" title="The long and winding road" /></li>
<li><img src="http://bxslider.com/images/730_200/trees.jpg" title="Happy trees" /></li>
</ul>
</div>
</p>
</div>
</div>