从活动的折叠式选项卡获取文本,然后在jquery中单击更改

时间:2013-02-08 07:00:26

标签: jquery

我有一个有5个标签的手风琴 我试图显示活动页面中的文本。 访问页面时,默认活动状态会显示我的代码 但点击它不会触发更改。

    <script>
    $('h2 a.active').change(setDisplayText).on('click', function(e) {
    $('.sub_heading').html($(this).text());
    e.preventDefault();
    }); 
    </script>

h2处于OL LI范围内

1 个答案:

答案 0 :(得分:0)

更新解决方案:
我已经得到.h2来显示活动标题(使用控制台将js注入到您的页面中)。您需要做的是使用函数定义onSlideAnimComplete选项。

替换以下行:

$('#three').liteAccordion({ theme : 'dark', rounded : true, enumerateSlides : false, firstSlide : 5, linkable : true, easing: 'easeInOutQuart' });

with :(我整理了一下间距)

$('#three').liteAccordion({
        theme : 'dark',
        rounded : true,
        enumerateSlides : false,
        firstSlide : 5,
        linkable : true,
        easing: 'easeInOutQuart',
        onSlideAnimComplete: function() {
                //Changes .h2 upon animation complete 
                $('.h2').html($('h2.selected span').html());
            }
    });

然后删除这些行:

<script>
        $('h2 a.active').change(setDisplayText).on('click', function(e) {
        $('.sub_heading').html($(this).text());
        e.preventDefault();
        });
        </script>

应该获得您正在寻找的功能(删除最后一部分只是为了删除冗余和控制台中显示的错误数量。)

您会注意到.h2不会立即更改。我尝试先使用onTriggerSlide选项更改文本,但h2.selected在动画完成之前不会转移到新标题,因此会显示上一个h2.active的文本。如果您想为.h2设置动画以定制它的转换,您可以在fadeOutonTriggerSlide(或任何您想要的动画),然后在onAnimSlideComplete中设置动画。 This page打破了liteAccordion的所有选项/方法。

让我知道这是否适合您,如果您需要更多的帮助:)

<小时/> 原帖:
由于我没有更大的上下文,我不会为你编写任何代码,但是我很确定你在寻找你想要的东西可以通过定义你在初始化手风琴时想要发生的任何事情来完成通过指定activate或beforeActivate选项。查看http://api.jqueryui.com/accordion/#event-activate,我相信您应该找到答案。

我不确切地知道你要做什么,所以你必须弄清楚是否要使用ui.newHeader,ui.oldHeader,ui.newPanel或ui.oldPanel然后你想要的与他们合作,但这里有一些东西让你开始:

$('.acc').accordion({
        activate: function(e,ui) {
                console.log(ui.newTab.html());
            });
    });