G'day,
Я работал над некоторой логикой для обработки выделенного текста пользователем. Я нашел очень хороший пример Марка Коли на http://mark.koli.ch/2009/09/use-javascript-and-jquery-to-get-user-selected-text.html.
Я создал рабочий пример по адресу: http://jsfiddle.net/metalskin/43c8h/8/
У меня проблема с кодом для конкретного экземпляра следующим образом:
- выберите текст.
- .
- закрыть диалог.
- Теперь щелкните без перетаскивания, чтобы очистить выделенный текст.
- .
- закрыть диалог.
- текст отменен.
В моей логике я не использую диалоговое окно (это просто как пример), я вставляю div с изображением, чтобы позволить пользователю выполнить действие.
Проблема заключается в том, что второй щелчок действительно очищает текст, но по какой-то причине браузер запускает событие мыши до того, как браузер очистит текст (во всяком случае, под firefox). Это, очевидно, не проблема с всплывающим диалоговым окном, но с моей логикой я получаю несколько добавленных div и, как таковые, несколько плавающих изображений поверх текста.
Есть ли способ определить, что событие приведет к удалению выделенного текста? В идеале я бы предпочел, чтобы событие сработало после того, как браузер очистил текст.
Заранее спасибо (и извините, если новый вопрос, я действительно груб, когда дело доходит до JavaScript).
: редактировать:
Я должен объяснить пример использования того, как я его использую.
- пользователь выделяет текст на странице
- появляется значок, где они только что освободили кнопку мыши от выделения текста
- пользователь выбирает значок, который открывает форму для ввода некоторых деталей, чтобы пометить выделенный текст (значок удаляется в этот момент времени)
- пользователь отправляет форму (ajax), форма закрывается.
- отображается страница, выделенный текст теперь не выделен (но добавлена дополнительная разметка).
или
- пользователь выделяет текст на странице
- появляется значок, где они только что освободили кнопку мыши от выделения текста
- пользователь нажимает в другом месте на странице, чтобы удалить выделенный текст и удалить значок.
- пользователь отправляет форму, форма закрывается.
У меня нет проблем с отменой выделения выделенного текста при выборе значка, но проблема в том, что, если они щелкают по другой части страницы, она активирует событие мыши и, таким образом, удваивает значки (или диалоговое окно, когда в приведенном примере это не подходит).