自动取消设置jQuery元素操作?

时间:2011-09-12 02:38:21

标签: javascript jquery dom-manipulation

当doc准备就绪时,我正在用jquery操作一些元素,当窗口调整大小时,问题是我不想指定在条件不适用时将一切设置恢复正​​常。这是我的代码:

function portfoliosingle_width(){
    var window_width = $(window).width();
    if(window_width < 964 ){
        $('#portfolio-single #site-main .structure').width(450);
        $('#portfolio-single #site-header').height(100);
        $('#portfolio-single #site-header .structure').width(450);
        $('#portfolio-single-text').width(425);
        $('#portfolio-single-images').appendTo('.structure article');
        $('#logo').css({'display':'block','width':'450px','float':'none'});

    }else if(window_width > 964 ){
        //want everything to go back the way it was without specifying each
    }

}

$(document).ready(function(){
    portfoliosingle_width();
});

$(window).bind("resize", function(){ 
    portfoliosingle_width(); 
});

有没有办法在不咨询我的样式表并查找每个值的情况下执行此操作,将每个值设置回原来的样式?

2 个答案:

答案 0 :(得分:1)

而不是在jquery中指定宽度/高度,使用css类,通过添加一个类来做,否则删除该类,它将恢复正常

$("#myelement").addClass("structure450");

然后在其他地方你可以做

//when you remove the class it will return to normal width and height
$("#myelement").removeClass("structure450");

或者你可以在其他地方将宽度和高度设置为“自动”。

在阅读评论后,你也可以这样做。

//read the html in a variable
var orignalHTML = $("#parentDiv").html();


//in else use this html

else {
  $("#parentDiv").html(orignalHTML);
}

答案 1 :(得分:1)

您可以将元素设置回自动:

$('#theElement').css('height', 'auto');