有没有办法可以刷新函数的参数,即使不重新加载整个页面?例如,在网址中显示的图片中,如果我更改了“'样式”中的值。下拉列表,其值将传递给手风琴功能,因此手风琴将自动更改其颜色,而无需重新加载页面。我怎样才能做到这一点?提前谢谢。
它在firefox中工作正常,但在IE和Chrome上,整个页面重新加载,从而恢复了 手风琴为其默认状态。
这是标记: http://jsfiddle.net/F954M/
var accordion = function(accordion,t,ease,style) {
var accordion = $("."+accordion), panels = accordion.children(), panelHead = panels.children("h3"), panelBody = panels.children("div");
if (ease == undefined || ease == "" || ease == "linear") {ease = "linear";}
//time controls
if (t == undefined || t == "") { t = 500 ;}
else if (t == "very fast") { t = 100; } else if (t == "fast") { t = 250; } else if (t == "medium") { t = 500; }
else if (t == "slow") { t = 800; } else if (t == "very slow") { t = 1200; }
//styling
panelHead.attr('class',"").addClass("panelHead-"+style);
//accordion click handler
panelHead.css({ "cursor":"pointer" }).click(function() {
var bodyHeight = 0, panelIndex = $(this).parent().index();
panelBody.eq(panelIndex).children("p").each(function() {
bodyHeight = bodyHeight + $(this).outerHeight(true);
});
panelBody.each(function() {
if( $(this).parent().index() == panelIndex && $(this).height() == 0) {
$(this).animate({"height":bodyHeight},t,ease);
}
else if ( $(this).parent().index() == panelIndex && $(this).height() > 0) {
$(this).animate({"height":0},t,ease);
}
else { $(this).animate({"height":0},t,ease); }
});
console.log(t + ", " + ease + ", " + style);
});
panelBody.css({ "height":0, "overflow":"hidden"});
};
$(function() {
$("form").change(function(e) {
location.reload(false);
})
});
答案 0 :(得分:0)
是的,你可以试试这个。当您更改选择的值时,这会激活您的功能。
$(YourSelectObject).on("change", YourFunction);
编辑 -
在您的代码中,您可以使用更改功能。只需删除location.reload(false)并添加accordion(“accordion”,$(“#speed”)。val(),$(“#easing”)。val(),$(“#style”)。val( ))。它有效。
$("form").change(function(e) {
//location.reload(false);
accordion("accordion", $("#speed").val(), $("#easing").val(), $("#style").val());
});
accordion("accordion", $("#speed").val(), $("#easing").val(), $("#style").val());