私は、ユーザーイベントを処理するために多くのJavascriptを使用して、非常に動的なWebベースのアプリケーションを構築しています。私は物事をもう少し使いやすくする過程にあり、今までにない問題に遭遇しました。
私はjQueryを使用しているので、それを考慮に入れてください。前もって感謝します。
次のように定義されたボタン要素のセットがあります。
<input type="button" title="My 'useful' text here." disabled="disabled" />
私はこれらのボタンをデフォルトのスタイルで持っています:
div#option_buttons input {
cursor: help;
}
次に、jQueryを使用して、選択ボックスでクリックイベントとして次のようなものを実行します。
window.current_column = '';
$('select.report_option_columns').live('click', function() {
var column = $(this).val();
if ( column == window.current_column ) {
// clear our our previous selections
window.current_column = '';
// make this option no longer selected
$(this).val('');
$('div#option_buttons input').attr('disabled','disabled');
$('div#option_buttons input').attr(
'title',
'You must select a column from this list.'
);
$('div#option_buttons input').css('cursor', 'help');
} else {
window.current_column = column;
$('div#option_buttons input').attr('disabled','');
$('div#option_buttons input').attr(
'title',
'Add this option for the column "' + column + '"'
);
$('div#option_buttons input').css('cursor', 'default');
}
});
したがって、ご覧のとおり、選択ボックス(ここには表示されていません)で列が選択されている場合、ボタンを有効にして、ボタンのように動作させます(自分のクリックイベントを使用)。ただし、列が選択されていない場合(デフォルトのロードを含む)、ボタンを無効にします。私のユーザビリティ開発者は、軽量のツールチップとしてtitle属性をネイティブにレンダリングすることで、ボタンを有効にするために何ができるかについて、ユーザーに微妙なコンテキストの手がかりを提供したいと考えていました。私はすでにアプリケーションの他の領域でこれを行っています(これはプロジェクトのクレイジーな獣です)。ユーザビリティテストでは、カーソルが「ヘルプ」に変わったときに、ユーザーがカーソルを合わせることができることを少なくとも認識できることが示されています。要素を作成し、何が起こっているかについての情報を取得します。
しかし、フォーム要素を使用してこれを試したのはこれが初めてです。どうやら、私がdisabled = "disabled"を要素に入れると、それはtitle属性を完全に無視し、ツールチップを表示しません。
今、私はいくつかのオプションがあることを知っています(少なくとも私が考えることができるもの):
- もう少し堅牢な独自のカスタムツールチッププラグインを作成します。
- 要素を「無効」にしないでください。ただし、無効としてスタイルを設定してください。これは私が(開発のしやすさの点で)最も頼りにしていたオプションでしたが、私はこれをしなければならないのが嫌いです。
- ボタンを有効のままにしますが、クリックイベントは処理しません。論理的に本来のスタイルのままにしておくのが好きなので、このオプションはあまり好きではありません。無効にされたボタンは最も正確に「感じ」、無効にされたボタンの外観はすぐに無効にされたボタンとして認識されます。
それで、それでも、私は何かが足りないのでしょうか?思いもよらなかった簡単なことはありますか?グーグル検索はこのトピックで私に失敗したので、私はこれにいくつかの新鮮な目を得るためにStackOverflowでこれを投げると思いました。
**編集**
私はちょうどこの同じトピックに関する別のStackOverflowの質問を見つけましたが、その人は彼の問題を説明する非常に異なる一連の用語を使用していました(おそらく私がそれを見つけられなかった理由)。
質問のURLは次のとおりです。Firefoxは無効な入力フィールドにツールチップを表示しません
その質問に対する両方の答えはかなり良いですが、他に誰か提案があるかどうかを確認したいと思います。多分もっとjQuery特有のもの?再度、感謝します。