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

两种函数风格之间的教训是什么?

谢谢

好的,根据大家的反馈来查看更多代码,这是我的 .js 文件中代码的完整说明...

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

我已将 jquery 连接到此 .js 页面,但我只是不明白为什么要在传统的 javascript 函数中插入星号而不是在 jquery 命名空间函数中灵活使用。我敢打赌它与重新调用星星的动画标签有关,但我不确定......

谢谢或任何建议!!!

4

2 回答 2

3

您无意中在第二个片段中调用了它:

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

您应该以相同的方式对其进行编码:传递函数,而不是调用它的结果:

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

不同之处在于您的第一个示例直接包含在 window 对象中,而第二个示例包含在 jQuery ($) 对象中(注意 $ 对象随后包含在 window 对象中)。至于为什么当你尝试使用 jQuery 命名空间时它会中断,我不能说没有看到你所有的代码,但是 $ 可能没有定义。

于 2012-09-14T16:40:00.503 回答