Есть ли событие onselect для неформальных элементов? - PullRequest
0 голосов
/ 25 июля 2010

Скажем, я хочу скрыть интервал, когда пользователь выделяет немного текста, содержащего этот интервал, с намерением скопировать этот текст в свой буфер обмена.

Например:

<p>The dragon <span class="tooltip">a large, mythical beast</span> belched
fire at St. George.</p>

Я обнаружил, что в Firefox Mac, span.tooltip исчезнет из поля зрения (в соответствии с моими объявлениями CSS), но будет отображаться в буфере обмена при копировании туда. Я понял (неправильно?), Что если бы я сказал «onHighlight, скрыть всплывающую подсказку», возможно, этого бы не произошло.

Ответы [ 2 ]

2 голосов
/ 25 июля 2010

Хотя это может быть более сложным, почему бы просто не создать событие onmousedown для элемента <p>, а событие thet затем присоединит событие onmousemove и событие onmouseout, чтобы при наличии мышидвижение, пока кнопка нажата, затем удалите класс на элементах span, и как только пользователь выйдет, этот элемент можно будет вернуть обратно.

Это может быть немного сложно, и вы можете захотетьтакже ищите нажатия клавиш или определяйте, когда вы хотите узнать, когда нужно возвращать классы CSS, но я думаю, это будет один из вариантов.

0 голосов
/ 25 июля 2010

Похоже, вам нужно сделать еще один шаг вперед и выделить, удалить <span> и сохранить ссылку на него. Как только выделение закончено, вставьте ссылку на объект заново.

 // copy start detected
 var savedTooltip = $('.tooltip').remove();

 // later that day when copy finished 
 $('p').append(savedTooltip);

Если позиция <span> в вашей разметке важна, вам нужно создать временный ссылочный элемент, чтобы вы знали, куда его вставить в DOM.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...