Все сделал, но пришлось, при создании блока всплывающей подсказки, ставить z-index: 9999, это нормально или лучше по другому делать?
$(function(){
initGTitle("#gtitle");//Инициализация
});
function initGTitle(idtitle){//idtitle - id блока для всплывающих подсказок.
if(!$(idtitle).length){
$('body').append('<div id="'+idtitle.substring(1)+'"></div>');
$(idtitle).css({
"position":"absolute",
"z-index":9999
});
}
$(document).mouseover(function(e){
var event = e || window.event;
var target = event.target || event.srcElement;
if (!target.title) return;
moveTitleIntoBox(target, idtitle);//перемещение текста из title в блок для всплыв. подсказки
viewGTitle(idtitle, event.clientX,event.clientY);
$(target).data("active", true)//запоминаем элемент, что бы при mouseout выполнялись функции исчезновения только для него.
return false;
});
$(document).mouseout(function(e){
var event = e || window.event;
var target = event.target || event.srcElement;
if(!$(target).data("active")) return;//Элемент не активен? выход : продолжаем
moveBoxIntoTitle(target, idtitle);
hideGTitle(idtitle);
$(target).data("active", false);
return false;
});
}
function viewGTitle(idtitle, x, y){
$(idtitle)
.css({
"top":y-4-$(idtitle).height()-parseInt($(idtitle).css("padding-top"))-parseInt($(idtitle).css("padding-bottom")),
"left":x+4,
"display":"block"
})
.stop()
.animate({opacity:1}, 400);
}
function hideGTitle(idtitle){
$(idtitle)
.stop()
.animate({
opacity:0
}, 400, function(){$(idtitle).css("display", "none");});
}
function moveTitleIntoBox(t, idtitle){
$(idtitle)
.empty()
.append(t.title);
t.title = "";
}
function moveBoxIntoTitle(t, idtitle){
t.title = $(idtitle).html();
}
И еще вопросы:
Как и куда функция data запоминает информацию?
Как сделать без JQuery, чтоб мой обработчик не мешал пользовательскому?