Вызов функции jQuery без подключения к элементу DOM или с подключением к временному элементу DOM
У меня есть следующая выдержка из jQuery:
Tselector.mouseup = function() {
var sel = getSelectionCharOffsetsWithin(document.getElementById("base"));
//...
}
Каждый раз, когда я выбираю текст в div
пометить с id=base
вышеуказанная функция будет активирована при отпускании кнопки мыши. getSelectionCharOffsetsWithin(element)
это метод, который анализирует выбор (мне это нужно для дальнейших шагов).
Теперь я хочу открыть всплывающую подсказку, показывающую варианты того, что я могу сделать с выбором. (Для тех из вас, кто знаком с iOS, это похоже на функциональность, когда я выбираю текст в веб-браузере.)
Проблема в том, что jQuery нужен элемент DOM для выполнения операций. Например, при использовании типсы:
$('#foo').tipsy();
Всплывающая подсказка связана с div
тег, который имеет id=foo
,
При срабатывании mouseup
функция, у меня нет такого элемента для выбранного текста, так что я не могу связать свой выбор с всплывающей подсказкой.
Есть ли возможность вызывать jQuery-функции напрямую, без подключения к элементу DOM (например, соединение подсказки с позицией мыши)? Если нет, то можно ли будет обойти временный элемент DOM, который создается и подключается к моему событию, но не сохраняется в HTML-коде постоянно?
Вот скрипка, чтобы продемонстрировать это: http://jsfiddle.net/noplacetoh1de/bYNmb/
Спасибо за любой совет!
1 ответ
Я думаю, что это возможно. Используйте переменную sel для создания временного промежутка, сначала разделите HTML. Использование substr () ( http://www.w3schools.com/jsref/jsref_substr.asp). Затем поместите промежуток вокруг вашего выбора. Когда выбор скрывается, вы должны получить innerHTML диапазона, но он вернулся на свое место, снова используя переменную sel, а затем уничтожить его.
Я думаю, что это гораздо проще сделать в MooTools кстати. Может быть, вы можете настроить скрипку, на которой мы можем продолжить?