2011-09-09 36 views
0

我用setinterval来滑动divs每个时间段的数量,但工作正常,但问题发生时,我做功能“getdata()”测试此动画并返回宽度,左侧位置,文本里面Div为每个p ...请帮助我改进函数“getdata()”以获取每秒或每秒更改的每个p的这些信息。
ineed以查看这样
1,左数据是:0,宽度:60
2,左侧是:34,宽度:40
3,左边是:66,宽度:70
我想使data_text为“1或2或3”是固定的,而对每个data_text宽度& data_p_l变化的“u可以考虑它它是一个ID为元件” 4EX“jquery列表setInterval里面的HTML元素

1,左是:0, width:60

>>这是固定的,这条线将不再重复
左边是:20 >>改变
宽度:20 >>改变

Ihopt,我已经清除我的问题。 非常感谢。

的HTML:

<div id="test"></div> 
<div id="center"> 
    <p id="th">3</p> 
    <p id="s">2</p> 
    <p id="f">1</p> 
</div> 

jQuery的:

$(document).ready(function(){ 
    var i = null; 
    var width = $('#center').width(); 
    var timer = setInterval(function() { 
     $('p').each(function() { 
      $(this).css({'left': $(this).position().left + i}); 
     }); 
     getdata('p' ,'#test'); 
     i+=1; 
    },500); 

function getdata(parentdiv,showdiv){ 
$(parentdiv).each(function(){ 
var $this = $(this);  
var width = $this.width(); 
var data_p_l= $this.position().left; 
var data_text= $this.text(); 
var dataset = data_text + ",Left value is: "+ data_p_l + ", 
width value is: "+ width ;//+ ",id value is: "+ data_id; 
$(showdiv).text($(showdiv).text() + ' ' + dataset); 
});} 
}); 
+0

缩进会让你的代码更具可读性;) – arnaud576875

回答

1

我不完全知道你正在尝试做的,但是这可能会有所帮助。首先,在本节:

function getdata(parentdiv,showdiv){ 
     $(parentdiv).each(function(){ 
      var len = $(parentdiv).length; 
      var width = $(e).width(); 
      var data_p_l= $(e).position().left; 
      var data_text= $(e).text(); 
      var dataset = data_text + ",Left value is: "+ data_p_l + ",width value is: "+ width; 
      $(showdiv).text(dataset); 
     }); 
    } 

你想this更换e

function getdata(parentdiv,showdiv){ 
    $(parentdiv).each(function(){ 
     var len = $(parentdiv).length; 
     var width = $(this).width(); 
     var data_p_l= $(this).position().left; 
     var data_text= $(this).text(); 
     var dataset = data_text + ",Left value is: "+ data_p_l + ",width value is: "+ width; 
     $(showdiv).text($(showdiv).text() + ' ' + dataset); 
      }); 
     } 

里面的each功能,this用来指的是被遍历每个元素。在您的功能结束时,您将结果放入您的div,编号为test。但是,这是循环运行的,所以最后只能输出最后的p标记,而不是每个标记。我想你想要做的是增加到test div这样的:$(showdiv).text($(showdiv).text() + ' ' + dataset);

+0

thnx很多大脑的帮助,但这不是我需要的扫描笏,看看这使得结果像这个“3,左值是:103,宽度值是:40 2,左值是:52,宽度值是:40 1,左值是:1,宽度值是:40 3,...我想使当每个data_text的宽度&data_p_l改变时,“1或2或3”的data_text被固定。“你可以认为它是元素”4Ex 1“的ID,这是固定的,并且这条线不会被重复”> > left value:20“changing”,width:20“changing”ihopt,我已经清除了我的问题 –

+0

对不起,我不理解你,输出与'p'元素的顺序相同,这就是为什么3第一。 –