0

以下のようなJavaScript関数はどうして...

function stars() {
var mOpacity = $('#area').css('opacity');
if (mOpacity = 1) {

$('#title').find('.stars').animate({"marginTop":"-170px",opacity:1}, 3000)
.animate({opacity: 0}, 400)
.animate({"marginTop":"60px",opacity:0},0, stars);
  }
}
stars();

...このようなことをしようとするとブラウザが壊れます....

$.stars = function() {
var mOpacity = $('#area').css('opacity');
if (mOpacity = 1) {

$('#title').find('.stars').animate({"marginTop":"-170px",opacity:1}, 3000)
.animate({opacity: 0}, 400)
.animate({"marginTop":"60px",opacity:0},0, $.stars());
  }
}
$.stars();

関数の 2 つのスタイルの間の教訓は何ですか?

ありがとう

より多くのコードを見るためにみんなのフィードバックに基づいて、ここに私の.jsファイルのコードの完全なgimplseがあります...

function mIntro() {

/********PRE-GAME ANIMATION*********/
$('#area').css({'opacity':0}).delay(1000).animate({opacity:1},300);
$('#title').find('.age').css({'opacity':0}).delay(2000).animate({opacity:1}, 3000);

function stars() {
var mOpacity = $('#area').css('opacity');
if (mOpacity = 1) {

$('#title').find('.stars').animate({"marginTop":"-170px",opacity:1}, 3000)
.animate({opacity: 0}, 400)
.animate({"marginTop":"60px",opacity:0},0, stars);
  } 
}
stars();
}

$(function() {
  mIntro();
});

この .js ページに接続されている jquery がありますが、なぜスターを従来の JavaScript 関数でケースに入れる必要があり、jquery 名前空間関数に対して柔軟ではないのか理解できません。星を呼び戻す animate タグと何か関係があるに違いないのですが、よくわかりません...

ありがとうまたはアドバイス!!!

4

2 に答える 2

3

2 番目のスニペットでうっかり呼び出しています。

.animate(..., $.stars());

同じようにコーディングする必要があります。呼び出しの結果ではなく、関数を渡します。

Function:             stars      $.stars
Result of calling:    stars()    $.stars()
于 2012-09-14T16:37:53.477 に答える
0

違いは、最初の例は window オブジェクト内に直接含まれているのに対し、2 番目の例は jQuery ($) オブジェクトに含まれていることです ($ オブジェクトは window オブジェクト内に含まれていることに注意してください)。jQuery名前空間を使用しようとすると壊れる理由については、すべてのコードを見ないとわかりませんが、 $ はおそらく定義されていません。

于 2012-09-14T16:40:00.503 に答える