0

これが可能かどうかさえわかりません。javascript と css を使用する UI を構築しました。ユーザーがキーを押してナビゲートするインターフェイスです。「スキン」のように、クライアントごとに変更されるレイアウトの Css。Javascript は機能を制御し、ユーザーのキープレスを監視します。

セットアップには、下のメニューと上のメニューの 2 つのメニューがあります。ロードすると、下のものがフォーカスされ、左右の矢印を使用してメニュー項目間を移動できます。

通常の状況では、「up」を押して上位メニューを取得しますが、この 1 つのクライアントはこのメニューをまったく必要としません。

問題は、JavaScript を単純に編集してそれを防ぐことはできないということです。同じ JavaScript がすべてのクライアントに使用され、選択されたクライアントに基づいて異なる CSS のみがロードされるためです。

これで、上部のメニューが非表示になりましたが、問題は、JavaScript で引き続き上に押すことができることですが、上部のメニューが表示されないため、フォーカスが失われ、何も強調表示されません。エンドユーザーは、誤って押し上げた場合、なぜ、またはどのようにフォーカスを失ったのかわかりません。(彼らはトップメニューがある別の設定を知らないので、押し下げる必要があることを認識していません。左/右を押しても何も起こらないことを知っているだけです)

私がやりたいことは、どういうわけか、css で、ユーザーが押し上げないようにすることです。JavaScriptを変更するだけではいけないので。

これは可能ですか?または、javascriptを変更する唯一の解決策ですか?

ティア!!

アドバイスを提供してくれたすべての人に感謝します。明確にするために、クライアントがこの他のメニューを望んでいるかどうかを確認し、そうでない場合はアップボタンを無効にする機能を備えた新しいリリースを作成しますが、それにはソフトウェアの新しいリリースが必要になります。 QA の完全なパス。その間、この1つのクライアントをすばやくハックしようとしています.. :)

私たちの最終的な解決策は、データベースにブール値フィールドを持ち、それが true の場合、javascript はアップ キーを無視し、false の場合は通常どおりに動作します。

4

3 に答える 3

2

要素が存在しない場合に上矢印キーを押した場合にのみ動作するようにコードを変更します。

EG を追加しpて、class="noupkey"次のようにイベントの発生を停止します。

if($('.nokeyup').length === 0) {
//Do normal behaviour
} 
于 2013-02-11T18:19:39.257 に答える
1

残念ながら、CSS を介してコンポーネントを無効にする正しい方法はありません。このタイプの機能は JavaScript を対象としているためです。

私が一緒に仕事をしたほとんどのプログラマーの哲学は、エンド ユーザーが新しい機能を使用するかどうかを決定できるようにすることです。

これが意味することは、ユーザーが自分でコンポーネントを無効にできるようにするオプションをアプリに残す必要があるということです。このようにして、すべてのユーザーに同じ JavaScript のセットを使用し、正しい方法でコンポーネントを無効にすることができます。これの本当の利点は、このチケットに二度と対処する必要がないことです。サポート スタッフは、要求された機能を再作成する操作をクライアントに説明するだけで済みます。

ただし、このソリューションのほとんどは使用できない場合があります。職場の慣習を変えるのは簡単ではないことは理解しています。

CSS を使用してフォーム フィールドを無効にするにはどうすればよいですか? アドバイスの一部は、メニューを含むあらゆるコンポーネントに適用できる場合があります。

于 2013-02-11T18:23:53.997 に答える
0

実際には非常に奇妙な解決策ですが、少しトリッキーな解決策で実行できます。

より多くの z-index を持つ 1 つの透明な Div を作成し、その Up Button の上のボディ レベルで Absolute Position を使用します。残りのアプリケーションでは Pointer Events Css プロパティを none に適用して、マウス イベントが Lower Div で実行されるようにします。

次に、そのコントロールを無効にしたいケースでは、 Pointer Events を最前部の div に与えないでください。これは、 mouse events に対して無効になります。

注 : IE の Pointer イベントにはいくつかの問題があります。

于 2013-05-29T18:52:00.077 に答える