2012-12-23 50 views
0

所以,我要访问的一个元素,并使用:如何到滚动的元素?

$('#classname').scroll(function(){ 
    // code here 
    alert("here"); 


}); 

$('#classname').ready(function(){ 
    // code here 
    alert("here"); 


}); 

我所面临的问题是这样的,即准备函数被调用,但没有滚动,通过jQuery的API去后,我才知道这:

当用户滚动到元素中的不同位置时,将滚动事件发送到元素。它适用于窗口对象,但也可用于滚动框架和元素,并将CSS溢出属性设置为 滚动(或当元素的显式高度小于其内容的高度 高度时自动滚动)。

因此,当一个页面加载时,我能够得到divs。但是当我向下滚动页面的其余部分加载时,.ready.scroll事件不会被触发。我如何设法得到这个?

+3

你到底想干什么?当元素进入视图时,你是否试图触发一个动作? – nbrooks

+1

如果_classname_是一个类名,它应该是'.classname',并且ready事件是由文档对象而不是由页面上的元素触发的。 – undefined

+0

@undefined可以使用任何目标调用ready方法:目标是无关紧要的,并且在DOM准备就绪时执行,无论 – nbrooks

回答

0

听起来就像你试图捕获滚动事件并在视图滚动时触发行为?你想要的东西,如:

$(document).ready(function() { 
    $(".classname").on("scroll", function(event) { 
     console.log($(event)); 
    }); 
}); 

而且你需要确保.classname是滚动的 - 例如,像这样:

<style type="text/css"> 
    .classname { 
     height:600px; 
     width:800px; 
     overflow: auto; 
    } 
    .inner { 
     height:1500px; 
     width:800px; 
     border:solid black 1px; 
    } 
</style> 
<div class="classname"> 
    <div class="inner"> 
     text<br> 
     text<br> 
     text<br> 
    </div> 
</div> 
+0

没有。还是行不通。 – Hick

+0

好的。行为有没有改变?经过测试,它为我工作。哦,我还为身材尺寸设置了样式 - 'body {height:300px; width:1000px; ''。尝试$(“。classname”)。trigger(“scroll”);在控制台中 - 会发生什么? – OpenSorceress

+0

我试了两个准备和滚动,既不((文件).ready。尽管classname.ready()适用于(Window).ready – Hick