jQuery无法在ngView加载的元素上找到元素[AngularJS]

时间:2015-12-22 15:30:00

标签: javascript jquery html angularjs

我试图获取 app.js 控制的offset().top中存在的元素<div class='profile'></div>,但控制台显示错误:

  

未捕获的TypeError:无法读取属性&#39; top&#39;未定义的

jQuery代码:

ngView

index.ejs

var topOfOthDiv = $('.profile').offset().top;

main.js

<head>
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js"></script>
    <script src="main/js/main.js"></script>
    ...
</head>
    <body>
       <div class="ui inverted top fixed nbar hidden menu">...</div>
       <div class="ui main container " ng-view>
       </div>
    </body>

$(document) .ready(function() { var topOfOthDiv = $('.profile').offset().top; $(window).scroll(function() { if($(window).scrollTop() > topOfOthDiv) { //scrolled past the other div? $('.fixed.menu').transition('fade in'); //reached the desired point -- show div } if($(window).scrollTop() < topOfOthDiv) { //scrolled past the other div? $('.fixed.menu').transition('fade out'); //reached the desired point -- show div } }); }) ; 中我加载了具有ng-view clss div的不同视图 如果.profile类在index.ejs

中,则代码可以正常工作

1 个答案:

答案 0 :(得分:1)

好吧,如果不查看整个代码,我们就无法确定原因,因为这可能有很多原因,但最可能的原因是:

  1. 您在声明HTML之后加载了Javascript文件。这意味着脚本正在寻找在执行后写入浏览器的内容。
  2. 你没有正确加载jQuery。