2012-09-11 63 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