0

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);

すべての変数に値が入力されています。すべての変数に警告を発し、デフォルト値も指定して確認しましたが、タイムアウト後に要素が表示されません。

4

3 に答える 3

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/

于 2012-09-11T15:39:00.887 に答える
0

あなたが書いたコードには2つの問題があるようです。.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);​

このフィドルをチェック

于 2012-09-11T15:42:27.940 に答える
0

要素が表示されるタイミングを遅らせる必要がある場合は、jQuery.delay()関数を利用することもできます。

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

c.delay(1000).show();
于 2012-09-11T15:55:07.727 に答える