私はjavascript(jQueryを使用)でアイテム選択機能を実装しています。 アイテムは、いくつかのhtmlを含むliです。
ユーザーは1つのアイテムをクリックして(選択する)、別のアイテムをShiftキーを押しながらクリックして、間にあるすべてのアイテムを選択できます。これは基本的にOKですが、shift-clickは項目内に表示されるテキスト(シフトクリックの基本的なブラウザ機能)も選択します(ハイライト)。これを無効にする方法はありますか?'shift'を押しながらテキスト選択を無効にする
答えて
...それは十分に効果的ではない場合、あなたはまた、onselectstartイベントをキャンセルする必要がある場合があります
document.getSelection().removeAllRanges();
... Shiftキー+クリックした後、これを試してみてください最初の場所での選択を防止するためにJavaScriptとCSSを使用してください:
$('li').attr('unselectable', 'on'); // IE
css(ブラウザではIE用):
li {
user-select: none; /* CSS3 (little to no support) */
-ms-user-select: none; /* IE 10+ */
-moz-user-select: none; /* Gecko (Firefox) */
-webkit-user-select: none; /* Webkit (Safari, Chrome) */
}
コンボを試してみてください
window.onload = function() {
document.onselectstart = function() {
return false;
}
}
+1です。 –
私はそのようなアプリケーションを持っています。私は選択を許可したいと思っていましたが、項目を選択するにはCtrl +クリックとShift-クリックが必要でした。私が見つけた何
であることが確認された誰もが、IEを使用すると、mouseDownイベントをキャンセルすることによってこれを倒すことができますし、IEで何が最も効果的に機能を一時的onselectstart無効にすることです:あなたは、テーブルの行のチェックボックスを持っている場合は
$("#id").mousedown(function (e) {
if (e.ctrlKey || e.shiftKey) {
// For non-IE browsers
e.preventDefault();
// For IE
if ($.browser.msie) {
this.onselectstart = function() { return false; };
var me = this; // capture in a closure
window.setTimeout(function() { me.onselectstart = null; }, 0);
}
}
});
これは私が探していた秘密でした。 Chromeで選択の瞬間的なフラッシュを取得し、Safariで 'document.getSelection()。removeAllRanges();'を追加する必要もありました。 – prototype
(項目)を選択した後は、選択した行のチェックボックスにフォーカスを設定することができます。チェックボックスに注目すると、ブラウザの選択を取り除く必要があります。テキストボックスや他のフォーム要素にも焦点を当てることができます。 JQueryの場合、onselectstartをキャンセルするために、JQueryの場合、
- 1. javascript:テキストを無効にする選択
- 2. Shiftキーを押しながらDataGridで複数の範囲を選択(Flex 3)
- 3. Androidのテキスト選択(WebView)のデフォルトのコンテキストアクションバーを無効にする
- 4. ダブルクリック時のテキスト選択を無効にする
- 5. テキストエリアのテキスト選択を無効にする
- 6. HTML要素のテキスト選択を無効にする
- 7. オプションから選択を有効または無効にする
- 8. 角度選択マルチセレクションモードで選択した選択肢を無効にする
- 9. rails - 選択タグを無効にする
- 10. Telerikカレンダー:選択を無効にする
- 11. 選択ボックスの値を無効にする(無効にして以前に選択した)オプション
- 12. 選択リストから選択オプションまでのテキストフィールドを無効にする
- 13. Enterボタンを押しながらボタンを選択
- 14. 無効に行選択は
- 15. クリックするとDIV選択が無効になる
- 16. ユーレカディスカバリクライアント - 選択的に無効にする
- 17. Chrome 18は無効なマルチ選択ボックスで選択したテキストを表示できません
- 18. 選択したJComboBoxアイテムが有効か無効かを検出
- 19. 無効な入力ボタンをすべて選択しない
- 20. CSS3のホバー効果を選択的に無効にする
- 21. 選択タグを動的に有効/無効にする
- 22. 最初の選択から選択オプションを選択したときに以前に選択したオプションを無効にする方法
- 23. .changeを使用して選択を無効にする方法
- 24. Select2 - 選択時に次の選択要素から無効な属性を削除します
- 25. 別のtdが特定のテキストを表示する場合、チェックボックスを選択して無効にする方法
- 26. SQLストアドプロシージャが選択リストエラーで無効になっています
- 27. 無効な選択のための$ _POST
- 28. UIPickerView無効な行の選択
- 29. エラーメッセージを返します。ユーザーが無効なファイルパスを選択しました
- 30. Laravelテストで選択したミドルウェアを無効にする方法
unselectable = "on"はすべての子ノード(div、pなど)にある必要があることに注意してください。チェックボックスウィジェットであってもシフトキーでクリックすることができます。 –
これは「シフトを押している間」の部分には対処していません。それについては@Anthony Millsの答えを見てください。 – ahlexander