|
|
|
| заметил такую особенность:
если мы нажимаем на кнопку,которая вызывает скрытие через style.display='none'; блока,в котором сама находится,и показывает другой блок,то как бы активность окна пропадает.если сменить активное окно,или нажать ctrl+alt+del то активность окна восстановится как и должна быть.как с этим быть?
привожу простейший но яркий пример:
test.js
function btnclk(name)
{
if (name==1)
{
document.getElementById('1').style.display='inline';
document.getElementById('2').style.display='none';
}
else
{
document.getElementById('2').style.display='inline';
document.getElementById('1').style.display='none';
}
};
|
test.php
<?
echo "<html><head><SCRIPT LANGUAGE='JavaScript' TYPE='text/javascript' SRC='test.js'></script></head></html>";
echo "<div id=1>первый блок<input type=button value='2' onmouseup=btnclk('2')></div><div id=2 style='display:none;'>второй блок<input type=button value='1' onmouseup=btnclk('1')></div>";
?>
|
ps:это обнаружил под ИЕ 6.0.2 | |
|
|
|
|
|
|
|
для: sanitar
(18.08.2008 в 02:38)
| | Нормальное явление - элемент, имеющий фокус, по нажатию на него делается невидимым.
Куда деваться фокусу, если у вас ничего не прописано?
все строчки типа:
document.getElementById('2').style.display='none';
замените на:
{document.getElementById('2').style.display='none'; window.focus ()}
|
| |
|
|
|
|
|
|
|
для: PAT
(18.08.2008 в 03:41)
| | НЕ ПОМОГЛО!!!! о_О
помогло в такой конструкции:
{document.getElementById('2').style.display='none'; document.window.focus ()}
|
НО!!!
кнопка при этом внешне всегда остаётся нажатой.как это устранить? | |
|
|
|
|
|
|
|
для: sanitar
(18.08.2008 в 12:10)
| | вопрос все-ещё актуален.как "отжать" эту кнопку? | |
|
|
|
|
|
|
|
для: sanitar
(18.08.2008 в 19:38)
| | Странно это как-то... кнопка по нажатию у вас исчезает, но остаётся "нажатой" ???
Как вы это узнаЁте - она же невидима становится? :-)
Ну да ладно... попробуйте функцию запускать по setTimeout с нулевым временем.
Тогда кнопка ГАРАНТИРОВАННО "отожмётся". | |
|
|
|
|
|
|
|
для: PAT
(18.08.2008 в 21:15)
| | а когда нажимаете на кнопки 1 и 2 по очереди при их смене они всегда визуально нажаты остаются.
а за пускать по таймеру....может другой вариант есть?я пытался привинтить к нажатию срабатывание blur(),но что-то вообще кнопка перестала нажиматься...
onmouseup={btnclk('2'); script:this.blur();}
|
зы:спасибо что помогаете.... | |
|
|
|
|
|
|
|
для: sanitar
(18.08.2008 в 23:45)
| | люди добрые!!!!ну пожалуйста,помогите!!!!у меня этот косяк часто встречается и я не знаю как его побороть.....плииз.... | |
|
|
|
|
|
|
|
для: sanitar
(21.08.2008 в 02:28)
| | Вы написали ХРЕНЬ - потому и не помогают.
По-русски объясните вашу проблему - тогда и помогут.
Лично мне совершенно непонятно: как может "оставаться нажатой" кнопка, которая "по нажатии становится невидимой"? | |
|
|
|
|
|
|
|
для: PAT
(21.08.2008 в 03:15)
| | чтож,обьясню наглядно.
function btnclk(name)
{
if (name==1)
{
document.getElementById('1').style.display='inline';
{document.getElementById('2').style.display='none'; document.window.focus ()}
}
else
{
document.getElementById('2').style.display='inline';
{document.getElementById('1').style.display='none'; document.window.focus ()}
}
};
|
пример такого тут: http://www.akademiki.biz/forum/select/1/test.php
function btnclk(name)
{
if (name==1)
{
document.getElementById('1').style.display='inline';
{document.getElementById('2').style.display='none'; window.focus ()}
}
else
{
document.getElementById('2').style.display='inline';
{document.getElementById('1').style.display='none'; window.focus ()}
}
};
|
пример этого тут: http://www.akademiki.biz/forum/select/test.php
чтобы увидеть неактивность окна-поводите мышью по кнопкам вперед,назад,обновить и прочих браузера. | |
|
|
|
|
|
|
|
для: sanitar
(28.08.2008 в 19:39)
| | Если нужно обрабатывать именно ONMOUSEUP, то, как я и рекомендовал вам ранее:
<html>
<head>
<script>
function btnclk (x)
{
document.getElementById ('a' + x).style.display = 'none';
document.getElementById ('a' + ((x == 1) ? 2 : 1)).style.display = 'inline';
window.focus ();
}
</script>
</head>
<body>
<div id="a2">первый блок<input type="button" value="2" onmouseup="setTimeout ('btnclk (2)', 0)"></div>
<div id="a1" style="display: none">второй блок<input type="button" value="1" onmouseup="setTimeout ('btnclk (1)', 0)"></div>
</body>
</html>
|
Ну а если пойдёт и ONCLICK, то можно и без тайм-аута:
...<input type="button" value="2" onclick="btnclk (2)">...
...<input type="button" value="1" onclick="btnclk (1)">...
|
*Внимательно прочтите
PS. И в будущем НИКОГДА не назначайте имена и идентификаторы (NAME и ID), начинающиеся с цифры. Валидное (т.е. правильное) значение этих атрибутов:
а) может содержать только буквы (в любом регистре), цифры и символ подчеркивания;
б) первым символом может быть только буква (в любом регистре). | |
|
|
|
|
|
|
|
для: PAT
(28.08.2008 в 20:22)
| | имена я просто тут в этом коде задал цифрами.вообще всегда буквенные задавал.
а я не понял эту конструкцию: ((x == 1) ? 2 : 1)
обьясните плиз. | |
|
|
|
|
|
|
|
для: sanitar
(29.08.2008 в 00:33)
| |
((x == 1) ? 2 : 1) вернёт 2, если х == 1
((x == 1) ? 2 : 1) вернёт 1, если х != 1
|
Это равносильно конструкции:
if (x == 1) y = 2;
else y = 1;
|
В общем виде:
<?
ВОПРОС ? ОТВЕТ "ДА" : ОТВЕТ "НЕТ"
((вы едите мясо) ? 'значит, вы мясоед' : 'значит, вы вегетарианец')
|
| |
|
|
|
|
|
|
|
для: PAT
(29.08.2008 в 03:16)
| | спасибо огромное.интересно и познавательно.не сталкивался раньше с таким. | |
|
|
|