Javascript jcarousel,我需要:外部控件的活动状态

Javascript jcarousel,我需要:外部控件的活动状态,javascript,jquery,html,ruby-on-rails,Javascript,Jquery,Html,Ruby On Rails,我正在运行一个Jcarousel,我想在当前分页选项中添加一个.active。我看过其他关于这件事的帖子 <script type="text/javascript"> /** * We use the initCallback callback * to assign functionality to the controls */ function mycarousel_initCallback(carousel) { jQuery('.jcarousel-cont

我正在运行一个Jcarousel,我想在当前分页选项中添加一个.active。我看过其他关于这件事的帖子

<script type="text/javascript">
/**
 * We use the initCallback callback
 * to assign functionality to the controls
 */
function mycarousel_initCallback(carousel) {
    jQuery('.jcarousel-control a').bind('click', function() {
        carousel.scroll(jQuery.jcarousel.intval(jQuery(this).text()));
        return false;
    });
}

jQuery('#mycarousel-next').bind('click', function() {
    carousel.next();
    return false;
});

jQuery('#mycarousel-prev').bind('click', function() {
    carousel.prev();
    return false;
});
};

// Ride the carousel...
jQuery(document).ready(function() {
    jQuery("#mycarousel").jcarousel({
        scroll: 1,
        initCallback: mycarousel_initCallback,
        // This tells jCarousel NOT to autobuild prev/next buttons
        buttonNextHTML: null,
        buttonPrevHTML: null
    });
});
</script> 

/**
*我们使用initCallback
*为控件指定功能的步骤
*/
函数mycarousel_initCallback(carousel){
jQuery('.jcarousel控件a').bind('click',function(){
滚动(jQuery.jcarousel.intval(jQuery(this.text()));
返回false;
});
}
jQuery(“#mycarousel next”).bind('click',function(){
carousel.next();
返回false;
});
jQuery('mycarouselprev').bind('click',function(){
上一个转盘();
返回false;
});
};
//乘坐旋转木马。。。
jQuery(文档).ready(函数(){
jQuery(“mycarousel”).jcarousel({
卷轴:1,
initCallback:mycarousel_initCallback,
//这告诉jCarousel不要自动生成上一个/下一个按钮
buttonNextHTML:null,
buttonPrevHTML:null
});
});
这就是初始化代码

分页就在里面:

<ul class="jcarousel-control">
    <%  (1..@project.size).each do |n| %>
        <li><a href="#"><%= n %></a></li>
    <% end %> 
</ul>`
`
它是一个rails应用程序,因此rails根据组中的项目数创建列表


有什么想法吗?看起来应该很简单。。但是我一点也不懂js。

好吧,所以我想我是自己弄明白的。首先,如果你只是提供

 ul.jcarousel-control li a:focus {background-position:0 -11px}
这将当前控制项设置为“打开”


但是,在单击它之前,这是不起作用的

好吧,我想我自己解决了每一个问题。首先,如果你只是提供

 ul.jcarousel-control li a:focus {background-position:0 -11px}
这将当前控制项设置为“打开”


但是,在单击它之前,这是不起作用的

我也需要这个,最后找到了一个解决方案,下面是我的代码:

jQuery("#mycarousel").jcarousel({
        scroll: 1,
        initCallback: mycarousel_initCallback,
        // This tells jCarousel NOT to autobuild prev/next buttons
        buttonNextHTML: null,
        buttonPrevHTML: null,
        itemVisibleInCallback: {
            onAfterAnimation: function(c, o, i, s) {
            --i;
              jQuery('.jcarousel-control a').removeClass('active').addClass('inactive');
              jQuery('.jcarousel-control a:eq('+i+')').removeClass('inactive').addClass('active');
            }
          }
    });

我也需要这个,最终找到了一个解决方案,以下是我的代码:

jQuery("#mycarousel").jcarousel({
        scroll: 1,
        initCallback: mycarousel_initCallback,
        // This tells jCarousel NOT to autobuild prev/next buttons
        buttonNextHTML: null,
        buttonPrevHTML: null,
        itemVisibleInCallback: {
            onAfterAnimation: function(c, o, i, s) {
            --i;
              jQuery('.jcarousel-control a').removeClass('active').addClass('inactive');
              jQuery('.jcarousel-control a:eq('+i+')').removeClass('inactive').addClass('active');
            }
          }
    });

使用
var size=c.options.size;i=((i-1)%size)+size)%size
而不是
--i。此代码固定负值的模数。

使用
var size=c.options.size;i=((i-1)%size)+size)%size
而不是
--i。此代码修复负值的模数。

如果使用循环旋转,则需要使用
i=(i-1)%$('#mycarousel li').size()
而不是
--i绝妙的解决方案!使用
wrap:'last'
进行无更改的工作。如果使用的是循环旋转,则需要使用
i=(i-1)%$('#mycarousel li').size()
而不是
--i绝妙的解决方案!使用
wrap:'last'
进行无更改的工作。很棒的东西。我花了半天的时间来获取第二个递增索引,以突出显示正确的外部控制:)很棒的东西。我花了半天的时间来获取第二个递增索引,以突出显示正确的外部控件:)