当窗口调整大小时,css(“position”)返回undefined

时间:2013-04-11 07:56:46

标签: jquery css

我有以下代码来捕获浏览器调整大小事件。

 window.onresize = function(){
 var style = $('#button-selection').position();
 if(style == "relative"){
 $("#button-section").css("position"," ");
 }else if(style == "fixed"){
    $("#button-section").css("position","relative");
 }              
 };


 window.onresize = function(){
            var style = $('#button-selection').css('position');
            if(style == "relative"){
                $("#button-section").css("position"," ");
            }else if(style == "fixed"){
                $("#button-section").css("position","relative");
            }               
        };

样式返回undefined。文档准备好后我正在运行它。我尝试使用窗口准备但结果是一样的。以上两种方法都返回undefined!

2 个答案:

答案 0 :(得分:5)

改变这个:

var style = $('#button-selection').position();

到此:

var style = $('#button-selection').css('position');

.position()用于获取元素的坐标。

来自文档:

  

获取匹配元素集中第一个元素的当前坐标,相对于偏移父元素。


更新

请改用$(window).resize()。我在这里有一个测试用例场景:in this fiddle.

$(window).resize(function () {
  var style = $('button').css('position');
  if (style == "relative") {
    alert('relative');
  } else if (style == "fixed") {
    alert('fixed');
  }
});

答案 1 :(得分:1)

jQuery docs说.position()是:

  

描述:获取第一个元素的当前坐标   匹配元素的集合,相对于偏移父元素。

你应该使用:

 var style = $('#button-selection').css('position');