|
|
|
| Подскажите в следующей ситуации:
Есть, например код
function move_div()
{
/*
Тут создаётся div
*/
div.innerHTML='<A HREF='javacript:void(0);' onclick=''>Закрыть</A>";
function click_close() {
//тут уничтожение созданного div
}
}
|
Вопрос как в onclick='' ссылки вызвать click_close() ??? | |
|
|
|
|
|
|
|
для: serenya1983
(04.08.2010 в 03:50)
| | Пользуйтесь DOM-методами создания тегов, а не "тупым" прописыванием innerHTML - и всё у Вас получится.
Например так:
var lnk = document.createElement ('A'), txt = document.createTextNode ('Закрыть');
with (lnk) {href = 'javascript: void (0)'; onclick = click_close; appendChild (txt)}
div.appendChild (lnk);
|
| |
|
|
|
|
|
|
|
для: АЯ
(04.08.2010 в 06:08)
| | Обратите внимание, что использование оператора with значительно замедлит работу кода. Если скорость работы является критичной, не используйте этот оператор.
только что прочитал в справочнике | |
|
|
|
|
|
|
|
для: psychomc
(04.08.2010 в 10:15)
| | Ага...
Только правильнее будет не категоричное "значительно замедлит", а "замедляет в большинстве браузеров".
В браузере MSIE, наоборот, использование with ВСЕГДА ускоряет обработку.
Можете проверить:
<script>
var ST0 = new Date ().valueOf (); for (var j = 0; j < 100000; j++) with (Math)
{var x = cos (3 * PI) + sin (LN10); var y = tan (14 * E)}
var ST1 = new Date ().valueOf (); for (var j = 0; j < 100000; j++)
{var x = Math.cos (3 * Math.PI) + Math.sin (Math.LN10); var y = Math.tan (14 * Math.E)}
var ST2 = new Date ().valueOf (); for (var j = 0; j < 100000; j++) with (Math)
{var x = cos (3 * PI) + sin (LN10); var y = tan (14 * E)}
var ST3 = new Date ().valueOf (); for (var j = 0; j < 100000; j++)
{var x = Math.cos (3 * Math.PI) + Math.sin (Math.LN10); var y = Math.tan (14 * Math.E)}
var ST4 = new Date ().valueOf ();
alert ('c with\t' + (ST1 - ST0) + '\t' + (ST2 - ST1) + '\nБЕЗ\t' + (ST3 - ST2) + '\t' + (ST4 - ST3));
</script>
|
Ну и, полагаю, что в рассматриваемой задаче скорость совершенно не критична. | |
|
|
|
|
|
|
|
для: АЯ
(04.08.2010 в 15:24)
| | у меня получилось в firefox 3 с with быстрее, в ie6 и opera10 примерно одинаково... | |
|
|
|
|
|
|
|
для: psychomc
(04.08.2010 в 15:43)
| | Это потому, что я ступил.
Переделайте и проверьте заново:
alert ('c with\t' + (ST1 - ST0) + '\t' + (ST3 - ST2) + '\nБЕЗ\t' + (ST2 - ST1) + '\t' + (ST4 - ST3));
|
| |
|
|
|
|
|
|
|
для: АЯ
(04.08.2010 в 15:48)
| | вот сейчас фаерфокст с with заметно медленне, а ие и опера заметно быстрее
спасибо, познавательно :) | |
|
|
|