3

ページの読み込み中に、パネルの上部を取得したい。しかし、それはエラーを示しています。Firefox と IE では「offset() is undefined」と表示され、Chrome では「Uncaught TypeError: Cannot read property 'top' of undefined」というエラーが表示されます。助けてください。

$(window).resize(function () {
    tabPanelAdjust();
});

function tabPanelAdjust() {
    var theTabPanel = $(".TabPanel");
    var tabPanelTop = parseInt(theTabPanel.offset().top);
    var winHeight = $(document).height();
    tabPanelHeight = winHeight - tabPanelTop;
    theTabPanel.css({ "min-height": tabPanelHeight - 20 });
}

<div class="TabPanel">
</div>
4

2 に答える 2

9

コードに問題はありません。ドキュメントレディメソッド内にコードを含めます。divがロードされる前にコードが起動される可能性があります。

$(function(){
$(window).resize(function () {
  tabPanelAdjust();
});

function tabPanelAdjust() {
 var theTabPanel = $(".TabPanel");
 var tabPanelTop = parseInt(theTabPanel.offset().top);
 var winHeight = $(document).height();
 tabPanelHeight = winHeight - tabPanelTop;
 theTabPanel.css({ "min-height": tabPanelHeight - 20 });
}
});

これが実用的なフィドルです:

http://jsfiddle.net/SX5U4/

于 2012-11-09T08:32:42.020 に答える
2

これを試してください:http://jsbin.com/ecumag/1/edit

function tabPanelAdjust() {
   var theTabPanel = $(".TabPanel");
   alert(theTabPanel.offset().top);
   var tabPanelTop = theTabPanel.offset().top;
   var winHeight = $(document).height();
   tabPanelHeight = winHeight - tabPanelTop;
   theTabPanel.css({ "min-height": tabPanelHeight - 20,"background":"yellow" });
}

$(function(){

    tabPanelAdjust();

});

jqueryをロードしていることを確認してください

于 2012-11-09T08:40:26.140 に答える