Javascript jqueryui:Accordion回调

Javascript jqueryui:Accordion回调,javascript,jquery,jquery-ui,Javascript,Jquery,Jquery Ui,我需要我的javascript只在我打开手风琴上的一个部分时进行回调,现在它在我打开或关闭一个部分时进行回调,因为我只使用了一个单击函数。是否有办法修改现有的单击功能,使其仅在激活给定部分时运行 我当前的点击功能: $("a#mimetypes").click(function() { $("span#mimetypesthrobber").loading(true, { max: 1500 }) $.getJSON("../mimetypes", function(data)

我需要我的javascript只在我打开手风琴上的一个部分时进行回调,现在它在我打开或关闭一个部分时进行回调,因为我只使用了一个单击函数。是否有办法修改现有的单击功能,使其仅在激活给定部分时运行

我当前的点击功能:

$("a#mimetypes").click(function() {
    $("span#mimetypesthrobber").loading(true, { max: 1500 })
    $.getJSON("../mimetypes", function(data) {
        //callback
    });
});
谢谢

编辑:

我已经用手风琴的另一部分试过了,但它不能正常工作:

$('.ui-accordion').bind('accordionchange', function(event, ui) {
if (ui.newHeader == "Encoders") {
EncodersGet();
}
});
您可以使用“”

例如,访问“newHeadert”并进行处理

编辑

根据新的信息{可折叠:真,活动:假}

$(document).ready(function() {
            var $acc = $('#accordion').accordion({ collapsible: true,
                   active : false ,
                   change : function (event, ui)
                   {
                                var index = $acc.accordion( "option", "active");
                    if( index === false){
                                 // all are close
                                }
                                else{
                                 // 0-based index of the open section
                                }

                   }
            });
        });
“选项,活动”将返回打开部分的索引,如果所有部分都已关闭,则返回“false”

您可以使用

例如,访问“newHeadert”并进行处理

编辑

根据新的信息{可折叠:真,活动:假}

$(document).ready(function() {
            var $acc = $('#accordion').accordion({ collapsible: true,
                   active : false ,
                   change : function (event, ui)
                   {
                                var index = $acc.accordion( "option", "active");
                    if( index === false){
                                 // all are close
                                }
                                else{
                                 // 0-based index of the open section
                                }

                   }
            });
        });

“option,active”(选项,活动)将返回打开部分的索引,如果所有部分都已关闭,则返回“false”(假)

如果所有手风琴部分都已被dfault关闭,则您可以将单击事件替换为toggle(切换),并使用第二个功能simple do nothing(简单不做任何事情)

$("a#mimetypes").toggle(function() {
    $("span#mimetypesthrobber").loading(true, { max: 1500 });
    $.getJSON("../mimetypes", function(data) {
        //callback 
    });
},
function() {
    //do nothing
});
更好的解决方案是向活动部分添加一个类,并在调用load之前检查该类

$("a#mimetypes").click(function() {
    if ($(this).hasClass("active")) {
        $(this).removeClass("active");
    }
    else {
        $(".active").removeClass("active"); //Edit - remove all active classes to account for this section being closed by the opening of another
        $(this).addclass("active");

        $("span#mimetypesthrobber").loading(true, { max: 1500 });
        $.getJSON("../mimetypes", function(data) {
            //callback 
        });
    }
});

如果所有的手风琴部分都被dfault关闭,那么可以用toggle替换click事件,并使用第二个函数simple do nothing

$("a#mimetypes").toggle(function() {
    $("span#mimetypesthrobber").loading(true, { max: 1500 });
    $.getJSON("../mimetypes", function(data) {
        //callback 
    });
},
function() {
    //do nothing
});
更好的解决方案是向活动部分添加一个类,并在调用load之前检查该类

$("a#mimetypes").click(function() {
    if ($(this).hasClass("active")) {
        $(this).removeClass("active");
    }
    else {
        $(".active").removeClass("active"); //Edit - remove all active classes to account for this section being closed by the opening of another
        $(this).addclass("active");

        $("span#mimetypesthrobber").loading(true, { max: 1500 });
        $.getJSON("../mimetypes", function(data) {
            //callback 
        });
    }
});

对殡仪馆回答的一个改进是:在将索引与false进行比较时使用三重相等,以避免第一个要匹配的手风琴元素

if (index === false) {
  // All are closed
} else {
  // 0-based index of the open section
}

请记住,在评估条件时,双等号将执行类型转换。

对承办者的一个改进回答:在将索引与false进行比较时使用三等号,以避免第一个要匹配的手风琴元素

if (index === false) {
  // All are closed
} else {
  // 0-based index of the open section
}

请记住,在评估条件时,double equals将执行类型转换。

您更好的解决方案的缺陷在于,您可以通过单击另一节的标题来关闭手风琴中的一节。因此,即使手风琴不再处于活动状态,该类也不会被删除。我还应该指出,我的手风琴css为{可折叠:true,活动:false}。您更好的解决方案的缺陷是,您可以通过单击另一节的标题来关闭手风琴中的一节。因此,即使手风琴不再处于活动状态,也不会删除该类。我还应该指出,我的手风琴css是{可折叠:true,活动:false}