при клике вне чет не разобрался, а вот при
var div = messageElem.getElementsByTagName('DIV')[0];
div.onmouseout = function()
{
messageElem.parentNode.removeChild(messageElem);
}
выбор второго варианта невозможен ибо они моментом пропадают

почему так?
<input class="diary-field" id="federado" onClick="setupMessageButton('federado')" type="text" name="federado" value="">
Свернутый текст
function createMessage()
{
var container = document.createElement('div');
container.innerHTML = '<div id="my-select"> \
<div> \
<p class="my-option">Si</p> \
<p class="my-option">No</p> \
</div> \
</div>';
return container.firstChild;
}
function positionMessage(elem, id)
{
document.getElementById(id).style.borderBottom = 'none';
pos = getElementPosition(id);
var left = pos.left;
var top = pos.top;
elem.style.position = 'absolute';
elem.style.left = left + "px";
elem.style.top = top + 32 + "px";
}
function addCloseOnClick(messageElem, id)
{
var div = messageElem.getElementsByTagName('DIV')[0];
var p = messageElem.getElementsByTagName('P');
var si = p[0].innerHTML;
var no = p[1].innerHTML;
p[0].onclick = function()
{
document.getElementById(id).value = si;
messageElem.parentNode.removeChild(messageElem);
}
p[1].onclick = function()
{
document.getElementById(id).value = no;
messageElem.parentNode.removeChild(messageElem);
}
div.personalbar = function()
{
messageElem.parentNode.removeChild(messageElem);
}
document.getElementById(id).style.borderBottom = '1px solid #CC6600';
}
function setupMessageButton(id)
{
var messageElem = createMessage();
positionMessage(messageElem,id);
addCloseOnClick(messageElem,id);
document.body.appendChild(messageElem);
}
function getElementPosition(id)
{
var elem = document.getElementById(id);
var w = elem.offsetWidth;
var h = elem.offsetHeight;
var l = 0;
var t = 0;
while (elem)
{
l += elem.offsetLeft;
t += elem.offsetTop;
elem = elem.offsetParent;
}
return {"left":l, "top":t, "width": w, "height":h};
}
Спустя 15 часов, 26 минут, 22 секунды (10.06.2010 - 15:50) Gabriel написал(а):
с onmouseout кажись разобрался.
а вот как убрать блок если елементы( инпут, p ) теряют фокус так и недоходит:(
p[0,1].onmouseout = function()
{
messageElem.parentNode.removeChild(messageElem);
}
а вот как убрать блок если елементы( инпут, p ) теряют фокус так и недоходит:(
Спустя 58 минут, 14 секунд (10.06.2010 - 16:48) ApuktaChehov написал(а):
onblur
Спустя 1 минута, 30 секунд (10.06.2010 - 16:50) Gabriel написал(а):
как-то понял, что onblur но его нужно поймать сразу по 3м элементам(ну или по обоим p сразу).
Спустя 47 минут, 31 секунда (10.06.2010 - 17:37) SlavaFr написал(а):
Gabriel а зачем ты собственно мучаешьсе тем, что ты елементы создаеш и удаляеш?
не проще ли просто style.display на block или none посадить?
к томуже легко замену делать
елемент.style.display=(елемент.style.display=='none'?'block':'none');
не проще ли просто style.display на block или none посадить?
к томуже легко замену делать
елемент.style.display=(елемент.style.display=='none'?'block':'none');
Спустя 8 минут, 4 секунды (10.06.2010 - 17:45) Gabriel написал(а):
просто не очень хочется добавлять вагон скрытого мусора в html его там и так вагон.
точнее совсем не хочется.
точнее совсем не хочется.
Спустя 6 минут, 6 секунд (10.06.2010 - 17:52) SlavaFr написал(а):
Цитата (Gabriel @ 10.06.2010 - 14:45) |
просто не очень хочется добавлять вагон скрытого мусора в html его там и так вагон. точнее совсем не хочется. |
а какая разница! добавлять мусор не в хтмл а в яваскрипт?
по мне ,так лучше в хтмл, так как там думать не надо.
Спустя 5 минут, 39 секунд (10.06.2010 - 17:57) Gabriel написал(а):
1. думать еще никого не убило.
2. в яваскрипт я добавлю 4ре функции а в html 4*5 = 20 строчек + фиг знает сколько еще для 6того поля (а там и так скрытого "мусора пол документа")
3. ну надаже с ним разобратся вконце-концов (короче это уже личное либо он либо я).
4. етож какой объем css будет (а точнее кл-во левых id для стилизации)
2. в яваскрипт я добавлю 4ре функции а в html 4*5 = 20 строчек + фиг знает сколько еще для 6того поля (а там и так скрытого "мусора пол документа")
3. ну надаже с ним разобратся вконце-концов (короче это уже личное либо он либо я).
4. етож какой объем css будет (а точнее кл-во левых id для стилизации)
Спустя 4 дня, 5 часов, 35 минут, 4 секунды (14.06.2010 - 23:32) Gabriel написал(а):
топик все еще активен и баян тобиш я бьется головой об мониор и никак неможет понять каже определить куда ушел клик в дочерний элемент сизданного дива али нет 
дошел вот до такого но снова не дает даже увидеть див

дошел вот до такого но снова не дает даже увидеть див
document.body.onclick = function()
{
child = document.body.childNodes;
if ( child != 1 ) messageElem.parentNode.removeChild(messageElem);
}
Спустя 9 месяцев, 15 дней, 23 часа, 44 минуты, 10 секунд (30.03.2011 - 23:16) Гость_Вова написал(а):
тоже думал много и догнал так что вот решения этой проблематики :D
var div = document.createElement('div');
div.onmouseout = function () {
if (event.toElement.parentNode != this) {
document.body.removeChild(this); event.cancelBubble = true;
}
var div = document.createElement('div');
div.onmouseout = function () {
if (event.toElement.parentNode != this) {
document.body.removeChild(this); event.cancelBubble = true;
}
_____________
one step, two steps HERE WE GO!!!