JavaScript 函数与 jquery 命名空间函数,区别



为什么下面会出现这样的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命名空间函数的灵活性。 我敢打赌这与重新调用星星的动画标签有关,但我不确定......

谢谢或任何建议!!

你在第二个代码段中无意中调用了它:

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

你应该以同样的方式编写代码:传递函数,而不是调用它的结果:

Function:             stars      $.stars
Result of calling:    stars()    $.stars()
区别在于

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

最新更新