0

私は JavaScript の初心者で、Codeacademy のトラックをまだ完成させていません。しかし、私は jQuery、HTML/CSS、および Python を完了したので、少なくともロジックは私にとって完全に無関係ではありません...

とにかく、初めて JavaScript のスキルを練習するためにテスト ページを作成しました。最終的に行ったのは、クリックするとさまざまな色に変わる「色の選択」div を作成し、その後、マウスをその上に置くと、「色の選択」div の色に変わるさまざまなセル。基本的にとてもシンプルな塗り絵です。しかし、そのままでは、キャンバスをクリックして色付けを開始することはできません。選択したかどうかに関係なく、マウスが画面のその部分に入るといつでも色が変わります。

「キャンバス」自体は単なる大きなテーブルです。そして、私が正しく理解していれば、テーブルで .focus() を使用することはできません。

簡単に言えば...「このテーブルにフォーカスがあるとき、マウスが(これ)の上にあるときにXを実行する」と言う方法があるかどうか疑問に思っています。または、「ユーザーがこのテーブルをクリックすると、マウスがホバーするとこれらのセルの色が変わります。ただし、ユーザーがテーブルの外をクリックすると、それをやめます。」

これは可能性さえありますか、それとも私はこれについてすべて間違った方法で行ったのですか?

4

1 に答える 1

0

多分これを試してください:

デモを見る

$('#myelem').attr('tabindex',-1).hover(function () {
    if (document.activeElement === this) {
        console.log('hover');
    }
});

tabindex 属性の設定は、一部のブラウザーのようにフォーカス イベントのクロスブラウザー サポート用です。デフォルトでは、tabindex を設定しない場合、一部の html 要素はフォーカスをネイティブにサポートしません。

ところで、フォーカスされた要素のスタイルをブラウザで変更したくない場合は、この css を要素に追加できます。

$('#myelem').css('outline',0).attr('tabindex',-1).hover(function () {...});
于 2013-04-28T11:01:25.330 に答える