对于在css中定义为display:none的元素我试图运行一个函数,该函数尝试使用.show()显示元素,代码如下:
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);
我已经检查了所有变量,我已通过警告所有变量并给出了默认值,但不知怎的,超时后元素没有显示。
答案 0 :(得分:0)
setTimeout
是一个全局函数。
var c = $('.element');
c.each(function () {
c.css({ 'left': dleft + 'px', 'top': dtop + 'px' });
setTimeout(function () {
c.show(1000);
}, sduration);
});
答案 1 :(得分:0)
您编写的代码中似乎存在两个问题。你没有关闭.each()循环..另外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
答案 2 :(得分:0)
如果您需要在显示元素时延迟,您还可以使用jQuery .delay()
函数。
c.each(function() {
c.css({
'left': dleft + 'px',
'top': dtop + 'px'
});
});
c.delay(1000).show();