为什么下面会出现这样的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 命名空间时它会中断,我不能说没有看到你的所有代码,但是 $ 可能没有定义。