1

関数を実行するには、Javascript onclick を 2 回クリックする必要があります。最初のクリックで実行する必要があります。それが私の問題です。私はグーグルで検索して2日間検索しましたが、うまくいった、または理解できる返信が見つかりませんでした.

JavaScript のコードは、http: //enji.se/windows8/js/script.jsにあります。

そして、私がそれを機能させたいサイト: http://enji.se/windows8/

これは、私が作成しようとしている Windows 8 のような Web サイトです。Google Chrome と 1265x820 より高い解像度でのみ正しく表示され、1590x920 より高い解像度で素晴らしいものになります。

よろしくお願いします / enji

解決した

4

3 に答える 3

8

問題はクリックハンドラーboxBeginの内部にあります-クリックイベントは最初のクリックで正しく受信され、メソッドに渡されますが、内部boxBeginでは値の動作を切り替えていますbox.style.display-IE9では、これは最初は「」であり、クローズコードではなく必要なオープンコード。

ボックスを変更する開始:

function boxBegin() {
    var box = document.getElementById('boxBegin');
    if (!box.style.display || box.style.display == "none") {
        box.style.display = "block";
    }
    else {
        box.style.display = "none";
    }
}
于 2011-06-05T21:54:05.330 に答える
1

同じ問題に遭遇したとき、これをグーグルで検索しました。

window.location.hash が特定の値であるかどうかを確認し、それに応じてメニュー タブのスタイルを設定していました。

私にとって、解決策は 10 ミリ秒の遅延関数を実行するのと同じくらい簡単で、それによってメイン関数が実行されました。

私にとっての問題は、変更が行われる前でも後でもなく、変更が行われたのとまったく同じ時間に変更をチェックするスクリプトにありました。これにより、再度変更するにはダブルクリックする必要があり、関数が変更をもう一度通知するには、ダブルクリックする必要がありました。

変更が反映されていないように見える場合は、5 ミリ秒の遅延スクリプトを実行する方が常に簡単です。これは私を何度も何度も助けてくれました

于 2012-04-17T21:39:10.020 に答える
-1

私の知る限り、onclickシングルクリックを登録しますか?

onclick でダブルクリックが必要な場合は、ブラウザ固有の問題である可能性があります。

また、MDCのドキュメントから:

ユーザーが要素をクリックすると、クリックイベントが発生します。クリック イベントは、mousedown および mouseup イベントの後に発生します。

また: 簡単なテストケース @ JS Fiddle

于 2011-06-05T21:48:29.323 に答える