http://www.juriseodesign.com/clock/Sydney.php
我的时钟计数javascript显示错误。我有我的背景更改工作,但添加计数时钟javascript后,时钟不起作用。我猜这是由与Mootools和常规jQuery的“碰撞”引起的,但我不知道如何修复它。有人可以帮我吗?另外,当我点击下拉菜单中的某个城市时,如何连接到其他分页?
非常感谢你!
// JavaScript文档
//initial time
var h_current = -1;
var m1_current = -1;
var m2_current = -1;
var s1_current = -1;
var s2_current= -1;
function flip (upperId, lowerId, changeNumber, pathUpper, pathLower){
var upperBackId = upperId+"Back";
$(upperId).src = $(upperBackId).src;
$(upperId).setStyle("height", "64px");
未捕获TypeError:对象#没有方法'setStyle'(重复315次) $(upperId)。setStyle(“visibility”,“visible”); $(upperBackId).src = pathUpper + parseInt(changeNumber)+“。png”;
$(lowerId).src = pathLower+parseInt(changeNumber)+".png";
$(lowerId).setStyle("height", "0px");
$(lowerId).setStyle("visibility", "visible");
var flipUpper = new Fx.Tween(upperId, {duration: 200, transition: Fx.Transitions.Sine.easeInOut});
flipUpper.addEvents({
'complete': function(){
var flipLower = new Fx.Tween(lowerId, {duration: 200, transition: Fx.Transitions.Sine.easeInOut});
flipLower.addEvents({
'complete': function(){
lowerBackId = lowerId+"Back";
$(lowerBackId).src = $(lowerId).src;
$(lowerId).setStyle("visibility", "hidden");
$(upperId).setStyle("visibility", "hidden");
} });
flipLower.start('height', 64);
}
});
flipUpper.start('height', 0);
}//flip
function retroClock(){
// get new time
now = new Date();
h = now.getHours();
m1 = now.getMinutes() / 10;
m2 = now.getMinutes() % 10;
s1 = now.getSeconds() / 10;
s2 = now.getSeconds() % 10;
if(h < 12)
ap = "AM";
else{
if( h == 12 )
ap = "PM";
else{
ap = "PM";
h -= 12; }
}
//change pads
if( h != h_current){
flip('hoursUp', 'hoursDown', h, 'Single/Up/'+ap+'/', 'Single/Down/'+ap+'/');
h_current = h;
}
if( m2 != m2_current){
flip('minutesUpRight', 'minutesDownRight', m2, 'Double/Up/Right/', 'Double/Down/Right/');
m2_current = m2;
flip('minutesUpLeft', 'minutesDownLeft', m1, 'Double/Up/Left/', 'Double/Down/Left/');
m1_current = m1;
}
if (s2 != s2_current){
flip('secondsUpRight', 'secondsDownRight', s2, 'Double/Up/Right/', 'Double/Down/Right/');
s2_current = s2;
flip('secondsUpLeft', 'secondsDownLeft', s1, 'Double/Up/Left/', 'Double/Down/Left/');
s1_current = s1;
}
}
setInterval('retroClock()', 1000);
答案 0 :(得分:1)
css
方法:
$(upperId).css('height','64px;');
看看这段代码,有很多东西与jQuery方法不匹配。
例如:如果您希望将src
属性更改为upperId
元素,则在jQuery中应使用attr
方法:
// $(upperId).src = $(upperBackId).src; // WRONG
$(upperId).attr('src', $(upperBackId).attr('src')); // CORRECT
如果你想引用一个带有id的元素,你必须在元素id之前加上#
:
var upperBackId = "#" + upperId + "Back";
答案 1 :(得分:0)
您尝试使用jQuery的Mootools方法。 jQuery中没有setStyle()方法。
答案 2 :(得分:0)
像其他人一样建议你应该使用$(..)。css(...)函数,因为jQuery中不存在setStyle。
我通常也更喜欢使用$(...)。hide()和$(...)。show()而不是$(...)。css(“visibility”,“hidden”)或$(...)。css(“visibility”,“visible”)因为“visibility”仍然占用空间并且与将opacity设置为0相同 - 如果我隐藏元素,我不希望它使用任何空间...