jQuery Accordion 1.6 event事件使用方法

由于公司老的网站系统都是使用的jquery.accordion-1.6,而现有accordion已经升到版本1.8了,文档也都是1.8的,event事件有chage, changestart, create三个,本以为1.6版本也适用change和changestart事件,结果测试发现根本无法trigger这个事件,查看了下1.6的文档

有这么一段代码

$(".ui-accordion").bind("accordionchange", function(event, ui) {
  ui.options // options used to intialize this widget
  ui.newHeader // jQuery, activated header
  ui.oldHeader // jQuery, previous header
  ui.newContent // jQuery, activated content
  ui.oldContent // jQuery, previous content
});

试了一下还是没法trigger到,好吧,开始看accordion的源码...

function completed(cancel) {
        // if removed while animated data can be empty
        if (!$.data(this, "ui-accordion")) return;
        var instance = $.data(this, "ui-accordion");
        var options = instance.options;
        options.running = cancel ? 0 : --options.running;
        if (options.running) return;
        if (options.clearStyle) {
            options.toShow.add(options.toHide).css({
                height: "",
                overflow: ""
            });
        }
        $(this).triggerHandler("change.ui-accordion", [options.data], options.change);
    }

绑定的是change.ui-accordion而非accordionchange,改下可以work了:

$('#gameList').bind('change.ui-accordion', function (event, ui) {
                var h;
                ui.newContent.find('.gameAnswers').each(function (i) {
                    if (i == 0)
                        h = $(this).height();
                    else {
                        if (h < $(this).height())
                            h = $(this).height();
                    }
                }); 
                ui.newContent.height(h).slideDown();
            });

吐槽下:还是读源码可以解决问题,但是需要有耐心...

转载于:https://www.cnblogs.com/Fred_Xu/archive/2012/09/21/jquery-accordion-1-6-event-document.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值