Javascript jqueryui:Accordion回调
我需要我的javascript只在我打开手风琴上的一个部分时进行回调,现在它在我打开或关闭一个部分时进行回调,因为我只使用了一个单击函数。是否有办法修改现有的单击功能,使其仅在激活给定部分时运行 我当前的点击功能: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)
$("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}