42

JQueryUI 1.9 の .disableSelection は非推奨です。私が見つけることができる唯一の説明は、文字通り、「テキスト選択を無効にすることは悪いことです。これを使用しないでください。」「開発者がテキスト選択をいじることを許してはなりません。これはもともとインタラクション プラグインのためのものでしたが、現時点ではすべてのプラグインが独自にテキスト選択を適切に処理しています。」

代替案が提示されていないので、それは常に悪いことを意味していると思いますが、その理由を理解することはできません. 精巧な UI アプリケーションのダブル/トリプルクリックまたはその他の意味のない選択は、テキストの強調表示効果を不適切に適用し、(私にとって) 堅牢なユーザー エクスペリエンスの幻想を即座に取り除きます。

デスクトップ アプリケーションは、この問題に悩まされることはありません。デスクトップ環境のボタンやその他のコントロールは、ソリッドに見え、何をしても (または壊れていても) 直感的に動作するピクセルの領域です。Web アプリケーションが複雑な html ボックス、背景、境界線、および画像 (ピクセルの Web アナログ) で構成されているという事実は、私たちが対話する画面要素が原子的で物理的なオブジェクトではないという幻想を裏切る理由にはなりません。

下の画像では、アプリケーション データである可能性があるパネル内のテキストの段落など、おそらく一部のテキストが選択可能である必要があります。ただし、一部のアプリケーションでは、ボタン、タブ、アコーディオン ヘッダー、モーダル ダイアログの背後にあるテキストなどの他の部分を選択できないようにすることは、合理的な設計上の選択です。これは、ドラッグ可能/ソート可能な種類の動作に特に当てはまります。

領域が選択された jQuery UI テーマローラー

1) 私は彼らの決定を誤解していますか? 推奨事項は、私が認識しているよりも JQuery に固有のものですか?

2) テキストは常にこのように選択可能であるべきであるという一般的な声明として意図されている場合は、その理由をより完全に説明してください。

3) とにかくそれを行うとしたら、disableSelection が廃止された今、最もパフォーマンスが高く、完全で、敬意を払い、クロスブラウザで、普遍的にアクセスできるものは何ですか?

4

4 に答える 4

31

CSS を使用して、ほとんどのブラウザでこれを実現できます: http://jsfiddle.net/fQthQ/

* {
   -ms-user-select: none; /* IE 10+ */
   -moz-user-select: -moz-none;
   -khtml-user-select: none;
   -webkit-user-select: none;
   user-select: none;
}

.selectable {
   -ms-user-select: auto;
   -moz-user-select: auto;
   -khtml-user-select: auto;
   -webkit-user-select: auto;
   user-select: auto;
}

Opera は現在、この機能をサポートしていません。

詳細については、MDN ページを参照してください: https://developer.mozilla.org/en-US/docs/CSS/user-select

于 2012-12-19T19:15:07.933 に答える