2014-11-19 2 views
0

Я пишу простое приложение «Flash Cards», которое появляется/исчезает на веб-странице без перезагрузки. Я ищу способ отключить/включить выбор через jQuery, чтобы я не выделял области приложения при многократном нажатии на него кнопок. Есть ли способ использовать jQuery для установки фона на прозрачность с помощью :: выбора? Я ищу что-то вроде:jQuery selector :: selection

$("*::selection").css("background","transparent"); 

вместо того, чтобы писать это в файл CSS:

*::selection {background:transparent;} 

PS Я также заинтересован в выборе конкретных элементов вместо того, чтобы использовать *, если это возможно.

+2

Почему вы не хотите устанавливать его с помощью css? Тогда браузер должен делать меньше работы. – JakeParis

+0

Я бы хотел отключить выбор только тогда, когда приложение запустилось на странице. Когда пользователь выходит из приложения, я хочу снова включить выбор на странице. Я ищу способ включения и выключения выбора с помощью javaScript. –

ответ

2

HTML:

<p>Lorem ipsum dolor sit amet, consectetur adipisicing elit...</p> 
<button>Selection toggle</button> 

CSS:

.selection *::selection {background:transparent;} 

JQuery:

$('button').click(function() { 
    $('html').toggleClass('selection'); 
    if (document.selection) { // IE 
     document.selection.empty(); 
    } else if (window.getSelection) { // OTHERS 
     window.getSelection().removeAllRanges(); 
    } 
}); 

jsfiddle

+0

Это ненадежное решение. Не всегда работает правильно. –

+0

Можете ли вы привести нам пример? – psieniarski

+0

Да, твоя скрипка не идеальна. Вы можете выделить текст, затем нажмите кнопку, иногда он не работает. Он скроет некоторые, но не все фон выделения. –