[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: скрытие созданного блока.
Gabriel
ну вот какбэ есть инпут к котором при клике должны клеятся снизу 2 ответа и при клике на один из ответов он должен поместится в инпут (что уже происходит). но вот тут упираюсь в вилы ибо варианты исчезают только при выборе ответа. вот думаю какбэ сделать скытие вариантов либо при клике в не зоны, либо когда мыш выходит за пределы.
при клике вне чет не разобрался, а вот при
	var div = messageElem.getElementsByTagName('DIV')[0];
div.onmouseout = function()
{
messageElem.parentNode.removeChild(messageElem);
}

выбор второго варианта невозможен ибо они моментом пропадают sad.gif
почему так?

<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[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');

Спустя 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 для стилизации)

Спустя 4 дня, 5 часов, 35 минут, 4 секунды (14.06.2010 - 23:32) Gabriel написал(а):
топик все еще активен и баян тобиш я бьется головой об мониор и никак неможет понять каже определить куда ушел клик в дочерний элемент сизданного дива али нет sad.gif

дошел вот до такого но снова не дает даже увидеть див

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;

}



_____________
one step, two steps HERE WE GO!!!
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.