Вызов функции 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 кстати. Может быть, вы можете настроить скрипку, на которой мы можем продолжить?

Другие вопросы по тегам