无法读取未定义的属性'top' - jQuery

时间:2013-02-27 18:08:48

标签: javascript jquery html css html5

我在Chrome开发者控制台中收到以下错误。

Uncaught TypeError: Cannot read property 'top' of undefined jquery.tools.min.js:19
c                                                           jquery.tools.min.js:19
a.extend.show                                               jquery.tools.min.js:19
(anonymous function)                                        jquery.tools.min.js:19
b.event.special.(anonymous function).handle                 jquery.min.js:4
b.event.dispatch                                            jquery.min.js:3
v.handle

如果站点在页面上处于空闲状态,即使没有来自用户的输入,错误的数量也会不断增加。造成这种情况的原因是什么?

tab jQuery:

$(document).ready(function () {
  $(this).scrollTop(0);                                                     //send user to top of page

/***********************************************************************************************************

LOAD TAB CONTENT

***********************************************************************************************************/
  $("#tabContent1").load("external/content.html", function () {                                 
    $("#offLogo").css({                                                     //apply CSS to offLogo
      width: "600px",
      margin: "auto",
      padding: "0px 0px 10px 0px"
    });
  });
  $("#tabContent2, #tabContent3, #tabContent4, #tabContent5, #tabContent6, #tabContent7").hide();       //hide tab content

  $("a").hover(function () {
    $(this).toggleClass('hover');                                           //toggle the hover class when user hovers over tab
  });

  $('a[name="#tabContent1"]').click(function () {                           //when user clicks the tab with the name tabContent1 do the following
    $("#tab2, #tab3, #tab4, #tab5, #tab6, #tab7").removeClass('activeTab');               //removes the activeTab class from all other tabs
    $(this).addClass('activeTab');                                          //adds activeTab class to the tab that was clicked
    $("#tabContent1").load("external/content.html", function () {           //loads external html file into content pane of the tab
      $("#offLogo").css({
        width: "600px",
        margin: "auto",
        padding: "0px 0px 10px 0px"
      });
    });
    $("#tabContent1").show();                                               //shows the content of the tab
    $("#tabContent2, #tabContent3, #tabContent4, #tabContent5, #tabContent6, #tabContent7").hide();
  });

  $('a[name="#tabContent2"]').click(function () {
    $("#tab1, #tab3, #tab4, #tab5, #tab6, #tab7").removeClass('activeTab');
    $(this).addClass('activeTab');
    $("#tabContent2").show();
    $("#tabContent1, #tabContent3, #tabContent4, #tabContent5, #tabContent6, #tabContent7").hide();
  });

  $('a[name="#tabContent3"]').click(function () {
    $("#tab1, #tab2, #tab4, #tab5, #tab6, #tab7").removeClass('activeTab');
    $(this).addClass('activeTab');
    $("#tabContent3").show();
    $("#tabContent1, #tabContent2, #tabContent4, #tabContent5, #tabContent6, #tabContent7").hide();
  });

  $('a[name="#tabContent4"]').click(function () {
    $("#tab1, #tab2, #tab3, #tab5, #tab6, #tab7").removeClass('activeTab');
    $(this).addClass('activeTab');
    $("#tabContent4").show();
    $("#tabContent1, #tabContent2, #tabContent3, #tabContent5, #tabContent6, #tabContent7").hide();
  });

  $('a[name="#tabContent5"]').click(function () {
    $("#tab1, #tab2, #tab3, #tab4, #tab6, #tab7").removeClass('activeTab');
    $(this).addClass('activeTab');
    $("#tabContent5").show();
    $("#tabContent1, #tabContent2, #tabContent3, #tabContent4, #tabContent6, #tabContent7").hide();
  });

  $('a[name="#tabContent6"]').click(function () {
    $("#tab1, #tab2, #tab3, #tab4, #tab5, #tab7").removeClass('activeTab');
    $(this).addClass('activeTab');
    $("#tabContent6").show();
    $("#tabContent1, #tabContent2, #tabContent3, #tabContent4, #tabContent5, #tabContent7").hide();
  });

  $('a[name="#tabContent7"]').click(function () {
    $("#tab1, #tab2, #tab3, #tab4, #tab5, #tab6, #tab7").removeClass('activeTab');
    $(this).addClass('activeTab');
    $("#tabContent7").show();
    $("#tabContent1, #tabContent2, #tabContent3, #tabContent4, #tabContent5, #tabContent6").hide();
  });

Tooptip:

  $(function () {
    $(document).tooltip();  //shows title attribute as a tooltip
  });

当您将鼠标移出窗口时(例如在Chrome地址栏上),然后鼠标移到选项卡上会出现错误,但如果鼠标停留在页面上并且鼠标悬停在选项卡上,则不会发生错误。在一些帮助下,这已经缩小到了tooptip功能的问题。

1 个答案:

答案 0 :(得分:1)

我在这里做了一个测试用例:

http://jsfiddle.net/3MxL2/1/

$("a").tooltip();

看起来jquery工具工具提示插件只有一个问题,它不允许你绑定到文档对象。尝试使用通用" a"要绑定的标记,它应该工作。仍然存在一些样式错误,但它应该解决当前的问题。