覆盖CSS:使用jquery显示无属性

时间:2012-09-11 15:34:51

标签: javascript jquery html css settimeout

对于在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);

我已经检查了所有变量,我已通过警告所有变量并给出了默认值,但不知怎的,超时后元素没有显示。

3 个答案:

答案 0 :(得分: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/

答案 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();