Снова панелька.
Столкнулся я такой бедой. Так вот по поводу этой зловещей таблички, при наведении мыши на которую, в одну из ячеек таблицы записывается текст из переменной, а когда мы удираем мышь из области таблицы, туда записывается пустая строка. Так вот, если в тексте, который мы интегрируем (методом innerHTML) в таблицу безо всяких тэгов, то табличка пропадает только после того, как мы выйдем из области таблицы, НО если мы записали туда текст ссылками или оформленный стилем, да и вообще как только встречается какой нито тэг, то табличка исчезает сразу же по паведении на ссылку или "стильный" текст. Как от этого избавиться. Почему так дико воспринимаются теги?
Вот собстн. код: <script> str_1 = '<b>Рейтинг Медведева вырос. Лидеры ОДКБ приняли декларацию о событиях на Кавказе. В России запретят продажу 92-го бензина.Райс: международная изоляция России растёт. Против России в Европе ведется информационная война. В Россию придет премиум-марка</b>' function move(idelem, wrstr) { argStr = move.arguments strWr = argStr[1] var xid = idelem.id; var axid = xid.split("") var numid = axid[3] var newid = "wr_"+numid var wrtd = document.getElementById(newid) wrtd.innerHTML = strWr //event.returnValue = false } </script> <div style="position:absolute; left:393px; top:104px;" onMouseOver="move(this, str_1)" id="mv_1" onMouseOut="move(this, '')"> <table width="240" border="0" cellspacing="0" cellpadding="0"> <tr> <td><img src="images/panel_top.gif" width="240" height="12"></td> </tr> <tr> <td align="center" class="onpanel" width="240"><p class="text_1">Текст</p></td> </tr> <tr> <td align="center" class="onpanel" id="wr_1"></td> </tr> <tr> <td><img src="images/panel_but.gif" width="240" height="12"></td> </tr> </table> </div> |
<html> <head> <body class="page-body"> <script> str_1 = '<b>Рейтинг Медведева вырос. Лидеры ОДКБ приняли декларацию о событиях на Кавказе. В России запретят продажу 92-го бензина.Райс: международная изоляция России растёт. Против России в Европе ведется информационная война. В Россию придет премиум-марка</b>' function move(idelem, wrstr) { var newid = idelem.id.replace(/\D*(\d*)\D*/,"wr_$1"); if (wrstr) { clearTimeout(this.timer); document.getElementById(newid).innerHTML = wrstr; } else { this.timer = setTimeout('document.getElementById("'+newid+'").innerHTML = "'+wrstr+'";',100); } } </script> <div style="position:absolute; left:393px; top:104px;" onMouseOver="move(this,str_1)" id="mv_1" onMouseOut="move(this, '')"> <table width="240" border="0" cellspacing="0" cellpadding="0"> <tr> <td><img src="images/panel_top.gif" width="240" height="12"></td> </tr> <tr> <td align="center" class="onpanel" width="240"><p class="text_1">Текст</p></td> </tr> <tr> <td align="center" class="onpanel" id="wr_1"></td> </tr> <tr> <td><img src="images/panel_but.gif" width="240" height="12"></td> </tr> </table> </div> </html> |
var newid = idelem.id.replace(/\D*(\d*)\D*/,"wr_$1"); - мне немного непонятен этот синтаксис. Что делает это выражение?
Спасибо. |
replace заменяет первое выражение на второе
первое выражение (регулярка): /\D*(\d*)\D*/ - почитай про регулярные выражения. Я не лектор... второе выражение (строка): "wr_$1", где $1 - выражение, соответствующее из регулярке, заключенной в скобки (вернее первый член массива, если их несколько). Короче, я объясняю слишком запутанно, так как пора спать... Почитай про регулярки и про формат replace. |
А чето ссылки в этой выпадающей менюшки не работают. Подскажите как сделать?
|
я телепат? код пожалуйста....
|
<html> <head> <body class="page-body"> <script> str_1 = '<p>Лидеры ОДКБ приняли декларацию о событиях на Кавказе. В России запретят продажу 92-го бензина.Райс: международная изоляция России растёт. Примерный текст.</p><a href="url">Подробнее...</a>' function move(idelem, wrstr) { var newid = idelem.id.replace(/\D*(\d*)\D*/,"wr_$1"); if (wrstr) { clearTimeout(this.timer); document.getElementById(newid).innerHTML = wrstr; } else { this.timer = setTimeout('document.getElementById("'+newid+'").innerHTML = "'+wrstr+'";',100); } } </script> <div style="position:absolute; left:393px; top:104px;" onMouseOver="move(this,str_1)" id="mv_1" onMouseOut="move(this, '')"> <table width="240" border="0" cellspacing="0" cellpadding="0"> <tr> <td><img src="http://javascript.ru/forum/images/panel_top.gif" width="240" height="12"></td> </tr> <tr> <td align="center" class="onpanel" width="240"><p class="text_1">Текст</p></td> </tr> <tr> <td align="center" class="onpanel" id="wr_1"></td> </tr> <tr> <td><img src="http://javascript.ru/forum/images/panel_but.gif" width="240" height="12"></td> </tr> </table> </div> </html> ...вот здесь. В строковой переменной str_1 содержится ссылка (<a href="url">Подробнее...</a>). Так вот после того, как панелька с текстом вылезет, на ссылку, прописавшуюся туды перейти нельзя, а хочется)) Спасибо. |
всё очень просто: при клике на ссылку происходит маусаут+маусовер на диве и перерисовка содержимого (то есть удаление бывшей ссылки + отрисовка новой такой же). Вот перехода и не происходит.
Вешаем проверку на нажатие ссылки и запрещаем в этом случае перерисовку: ss = false; str_1 = '<a href="http://www.yandex.ru/" onmousedown="ss=true">343534</a>Рейтинг Медведева вырос. Лидеры ОДКБ приняли декларацию о событиях на Кавказе. В России запретят продажу 92-го бензина.Райс: международная изоляция России растёт. Против России в Европе ведется информационная война. В Россию придет премиум-марка'; function move(idelem, wrstr) { if (ss) return; var newid = idelem.id.replace(/\D*(\d*)\D*/,"wr_$1"); if (wrstr) { clearTimeout(this.timer); document.getElementById(newid).innerHTML = wrstr; } else { this.timer = setTimeout('document.getElementById("'+newid+'").innerHTML = "'+wrstr+'";',100); } } |
Спасибо огромное!!!
|
Часовой пояс GMT +3, время: 17:35. |