У меня есть небольшая подсказка. В некоторых местах он динамически добавляется на страницу. В других он существует с самого начала.jQuery: Как проверить, был ли элемент добавлен динамически или нет?
Потому что что-то вроде $("mytooltip").mouseover(...)
не будет работать для элементов, которые добавляются динамически, я должен использовать что-то вроде $("body").on("mouseover, ".mytooltip", function(){...})
Я волнуюсь, однако, что со вторым раствором, он будет пытаться стрелять функцию, каждый раз, когда я двигаю мышь на body
, которая очень неэффективна (правильно?).
Я думаю, что, возможно, я смогу запустить какое-то пользовательское событие всякий раз, когда я добавляю всплывающую подсказку динамически. Таким образом, если событие было уволено, мы перейдем на $("body").on("mouseover", .....);
, иначе мы будем использовать обычный $(".mytooltip").mouseover
.
Так что-то вроде:
if(...){//Event was fired - i.e. we've added the tooltip dynamically
$("body").on("mouseover", ".mytooltip", function(){
mouseOverFunc();
});
$("body").on("mouseout", ".mytooltip", function(){
mouseOutFunc();
});
}else{
$(".mytooltip").mouseover(function(){
mouseOverFunc();
});
$(".mytooltip").mouseout(function(){
mouseOutFunc();
});
}
Проблема в том, я не знаю, как определить, если событие был уволен или нет ....
PS - Бонус вопрос: Является ли то, что Я поступаю разумно? Или я слишком много переусердствую, и должен просто делать $("body").on("mouseover")
за все?
Я был бы более полезным, чтобы увидеть, как добавить всплывающую подсказку, как и обработчики событий могут быть добавлены элемент при его создании – adeneo
Всплывающая подсказка просто разметка '
. Тогда вы можете сделать что-то вроде этого -> http://jsfiddle.net/ySCYs/ – adeneo