2012-09-11 33 views
0

對於定義爲顯示的元素:無在CSS我試圖運行它試圖使用.show(),顯示元件的功能,下面的代碼:重寫CSS:顯示無屬性與jquery

CSS

.element { 
    position: absolute; 
    display: none; 
    left: 0; 
    top: 0; 
} 

HTML

<div class="element">Some content here</div> 
<div class="element">Some content here</div> 

的jQuery

var c = $('.element'); 

c.each(function() { 
    c.css({ 
    'left': dleft + 'px' 
    }); 

    c.css({ 
    'top': dtop + 'px' 
    }); 

    c.setTimeout(function() { 
    c.show(1000); 
    }, sduration); 

所有的變量都得到填充我已經提醒所有的人檢查,並給予他們的默認值,以及,但不知何故,該元素不被超時後顯示。

+2

你不能像那樣使用setTimeout。 – j08691

回答

0

似乎是在你寫的代碼的兩個問題。您還沒有關閉。每個()循環。也setTimeout的是一個全球性的功能..選中此

var dleft = 40; 
var dtop = 40; 
var sduration = 1000; 
var c = $('.element'); 

c.each(function() { 
    c.css({ 
     'left': dleft + 'px', 
     'top': dtop + 'px' 
    }); 
}); 
setTimeout(function() { 
    c.show(1000); 
}, sduration);​ 

入住這FIDDLE

+0

謝謝!工作並得到了問題... – user1663313

0

setTimeout是一個全局函數。

var c = $('.element'); 

c.each(function() { 
    c.css({ 'left': dleft + 'px', 'top': dtop + 'px' }); 

    setTimeout(function() { 
    c.show(1000); 
    }, sduration); 
}); 

演示:http://jsfiddle.net/S7nw3/

0

如果您需要的時候被顯示的元素延遲,你也可以利用jQuery .delay()函數。

c.each(function() { 
    c.css({ 
     'left': dleft + 'px', 
     'top': dtop + 'px' 
    }); 
}); 

c.delay(1000).show(); 
+0

如果你想動畫元素的顯示,你把它傳遞給.show()方法本身,所以,而不是延遲,你可以使用.show('slow') – Obbi

+0

謝謝,但我通過使用.animate和回調使用完整的參數.... – user1663313