2011-09-09 91 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第一。 –