时钟计数javascript / php错误

时间:2012-12-09 21:57:23

标签: php javascript jquery

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

3 个答案:

答案 0 :(得分:1)

我刚看了jQuery参考,setStyle方法就不存在了。 您应该使用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相同 - 如果我隐藏元素,我不希望它使用任何空间...