1

我一直在让自己发疯,试图完成这项工作。我的尝试变体变得非常尴尬 - 我似乎无法弄清楚 Niall 滑块要我做什么才能触发滑块转到下一帧而不单击任何内容。

我想要的是当表单元素更改时滑块滑动到下一帧。因此,使用 jquery 应该很简单:

$(document).ready(function()  
 {  
  $('#radioButton').change(function(){  
   GO TO THE NEXT FRAME  
  });  
 })  

但显然事情并没有那么简单。我已经尝试了很多东西。一些绝望的事情。主要是试图触发他的部分代码。似乎使下一帧发生的代码是以下代码:

    $('#coda-nav-right-' + sliderCount + ' a').click(function(){
        navClicks++;
        if (currentPanel == panelCount) {
            offset = 0;
            currentPanel = 1;
            alterPanelHeight(0);
            slider.siblings('.coda-nav').find('a.current').removeClass('current').parents('ul').find('a:eq(0)').addClass('current');
        } else {
            offset = - (panelWidth*currentPanel);
            alterPanelHeight(currentPanel);
            currentPanel += 1;
            slider.siblings('.coda-nav').find('a.current').removeClass('current').parent().next().find('a').addClass('current');
        };
        $('.panel-container', slider).animate({ marginLeft: offset }, settings.slideEaseDuration, settings.slideEaseFunction);
        if (settings.crossLinking) { location.hash = currentPanel }; // Change the URL hash (cross-linking)
        return false;
    });

这是我对 javascript 非常平庸和对 Niall 的代码相当不熟悉的结合。它的评论很好,但我不能准确地告诉每一行发生了什么。当我看到时,我不确定如何使用我的 .change 函数来实现同样的事情。

无论如何,如果有人能对此有所了解,我将不胜感激。我想如果我能得到帮助来解决这个问题,它也可能对我有所帮助。我认为这里有一些关于 javascript 的东西我不理解,但我不知道它是什么。

4

1 回答 1

1

click()您可以使用jQuery 中的 no-args 函数以编程方式单击链接。假设您使用与大多数示例相同的设置,您应该能够编写如下内容:

HTML:

<input type="radio" id="next-panel" />

JavaScript:

$("#next-panel").bind("change", function() {
    $("#coda-nav-right-1 > a").click();
});

这将单击演示中“正确”链接的默认位置的链接。您可以在这里看到一个工作示例:http: //jsfiddle.net/andrewwhitaker/WzJMP/

旁注:您是否考虑过使用jQueryUI 选项卡?jQueryUI 有一个更实用且记录良好的 API,您可以轻松地重新创建 Coda 滑块的效果和功能。您还可能会在 StackOverflow 等网站上获得更好的支持。

于 2010-12-22T02:08:45.917 回答