1

http://www.juriseodesign.com/clock/Sydney.php

クロックカウントのJavaScriptにエラーが表示されます。バックグラウンドの変更は機能していますが、カウントクロックJavaScriptを追加した後、クロックが機能しません。Mootoolsや通常のjQueryとの「衝突」が原因だと思いますが、どうすれば修正できるのかわかりません。誰かが私のためにこれを助けることができますか?また、ドロップダウンメニューで都市の1つをクリックしたときに、他のページに接続するにはどうすればよいですか?

どうもありがとう!

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

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

3 に答える 3

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";
于 2012-12-09T22:02:17.427 に答える
0

jQueryでMootoolsメソッドを使用しようとしています。jQueryにはsetStyle()メソッドはありません。

于 2012-12-09T22:05:32.193 に答える
0

他の人が提案しているように、setStyleはjQueryに存在しないため、$(..)。css(...)関数を使用する必要があります。

私は通常、$(...)。css( "visibility"、 "hidden")や$(の代わりに$(...)。hide()と$(...)。show()を使用することを好みます。 ..)。css( "visibility"、 "visible") "visibility"はまだスペースを取り、不透明度を0に設定するのと同じであるため、要素を非表示にした場合、スペースを使用したくありません。

于 2012-12-09T22:13:44.607 に答える