为什么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命名空间函数。我打赌它与重新称之为星星的动画标签有关,但我不确定......
谢谢或任何建议!!!
答案 0 :(得分:3)
你无意中在第二个片段中调用了它:
.animate(..., $.stars());
您应该以相同的方式对其进行编码:传递函数,而不是调用它的结果:
Function: stars $.stars
Result of calling: stars() $.stars()
答案 1 :(得分:0)
不同之处在于您的第一个示例直接包含在window对象中,而第二个示例包含在jQuery($)对象中(请注意,$ object随后包含在window对象中)。至于为什么当你试图使用jQuery命名空间时它会中断,我不能说没有看到你的所有代码,但是$可能没有被定义。