更新jQuery函数而不重新加载页面

时间:2014-05-06 08:00:33

标签: javascript jquery function

有没有办法可以刷新函数的参数,即使不重新加载整个页面?例如,在网址中显示的图片中,如果我更改了“'样式”中的值。下拉列表,其值将传递给手风琴功能,因此手风琴将自动更改其颜色,而无需重新加载页面。我怎样才能做到这一点?提前谢谢。

Image

它在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);
        })  
    });

1 个答案:

答案 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());