Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 16.12.2009, 16:35
Интересующийся
Отправить личное сообщение для Anguis Посмотреть профиль Найти все сообщения от Anguis
 
Регистрация: 16.12.2009
Сообщений: 17

Динамическое создание елемента из динамически созданного элемента.
Здрасте!
Сразу к делу. Есть функция которая создает элемент -
function show(num){
var el=document.createElement("input");
el.setAttribute("name", "img["+num+"]");
el.setAttribute("type", "file");
el.setAttribute("style", "width:450px");
num++;
el.setAttribute("onClick", "show("+num+")");
fo = document.getElementById("chfiles");
fo.appendChild(el);
fo.appendChild(document.createElement("br"));
}

Т.е. она создает элемент input при изменении которого опять-же должна вызываться эта-же функция, которая создаст еще один элемент.
Работает везде кроме ИЕ.
ЧЯДНТ?
Ответить с цитированием
  #2 (permalink)  
Старый 16.12.2009, 16:42
Новичок на форуме
Отправить личное сообщение для Kolyaj Посмотреть профиль Найти все сообщения от Kolyaj
 
Регистрация: 19.02.2008
Сообщений: 9,177

el.onclick = function() {
    show(num + 1);
}

Строчку num++ удалить.
Ответить с цитированием
  #3 (permalink)  
Старый 16.12.2009, 16:52
Интересующийся
Отправить личное сообщение для Anguis Посмотреть профиль Найти все сообщения от Anguis
 
Регистрация: 16.12.2009
Сообщений: 17

Сообщение от Kolyaj Посмотреть сообщение
el.onclick = function() {
    show(num + 1);
}

Строчку num++ удалить.
Не работает
При том перестало работать и в опере и мазилле
Ответить с цитированием
  #4 (permalink)  
Старый 16.12.2009, 16:57
Новичок на форуме
Отправить личное сообщение для Kolyaj Посмотреть профиль Найти все сообщения от Kolyaj
 
Регистрация: 19.02.2008
Сообщений: 9,177

Работает.
Ответить с цитированием
  #5 (permalink)  
Старый 16.12.2009, 17:06
Интересующийся
Отправить личное сообщение для Anguis Посмотреть профиль Найти все сообщения от Anguis
 
Регистрация: 16.12.2009
Сообщений: 17

Сообщение от Kolyaj Посмотреть сообщение
Работает.
Не, я чё, прикалываться буду?

Привожу скрипт целиком.
function show(num){
var el=document.createElement("input");
var desk=document.createElement("input");
var lab = document.createElement("lable");
el.setAttribute("name", "img["+num+"]");
el.setAttribute("type", "file");
el.setAttribute("style", "width:450px");
desk.setAttribute("name", "desk["+num+"]");
desk.setAttribute("type", "text");
desk.setAttribute("style", "width:450px");
desk.setAttribute("value", "Подпись");
desk.onFocus = function() {if(this.value=='Подпись'){this.value=''}};
lab.setAttribute("for", "photo["+num+"]");
el.onClick = function() {
    show(num+1);
}
lab.innerHTML = "Фото"+(num+1);
fo = document.getElementById("chfiles");
fo.appendChild(lab);
fo.appendChild(el);
fo.appendChild(document.createElement("br"));
fo.appendChild(desk);
fo.appendChild(document.createElement("br"));
fo.appendChild(document.createElement("br"));
}


Он не работает ни в одном из браузеров!!
При том не работает ни строка desk.onFocus = function() {if(this.value=='Подпись'){this.value=''}}; ни строка el.onClick = function() {
show(num+1);
}

А если делать el.setAttribute("onFocus", "if(this.value=='Подпись'){this.value=''}") ; то это работает везде кроме ИЕ
Ответить с цитированием
  #6 (permalink)  
Старый 16.12.2009, 17:08
Аватар для e1f
e1f e1f вне форума
Профессор
Отправить личное сообщение для e1f Посмотреть профиль Найти все сообщения от e1f
 
Регистрация: 03.04.2009
Сообщений: 1,263

А если не onClick, а onсlick?
Ответить с цитированием
  #7 (permalink)  
Старый 16.12.2009, 17:17
Интересующийся
Отправить личное сообщение для Anguis Посмотреть профиль Найти все сообщения от Anguis
 
Регистрация: 16.12.2009
Сообщений: 17

Сообщение от e1f Посмотреть сообщение
А если не onClick, а onсlick?
Херассе! Явсакрипт жешь регистрозависимый язык.... Я и не знал что есть onClick и onclick и это разные вещи
Спасибо, заработало!
Ответить с цитированием
  #8 (permalink)  
Старый 16.12.2009, 17:21
Новичок на форуме
Отправить личное сообщение для Kolyaj Посмотреть профиль Найти все сообщения от Kolyaj
 
Регистрация: 19.02.2008
Сообщений: 9,177

Напишешь им, только чтоб скопировали, все равно что-нить поменяют.
Ответить с цитированием
  #9 (permalink)  
Старый 16.12.2009, 17:23
Интересующийся
Отправить личное сообщение для Anguis Посмотреть профиль Найти все сообщения от Anguis
 
Регистрация: 16.12.2009
Сообщений: 17

Сообщение от Kolyaj Посмотреть сообщение
Напишешь им, только чтоб скопировали, все равно что-нить поменяют.
Вот не надо. Новички в яваскрипте многого не знают, и надо объяснять. Я вот до этого и не представлял что такая разница есть и думал что делаю верное исправление, так как знаю что язык регистрозависимый.
Ответить с цитированием
  #10 (permalink)  
Старый 16.12.2009, 17:24
Новичок на форуме
Отправить личное сообщение для Kolyaj Посмотреть профиль Найти все сообщения от Kolyaj
 
Регистрация: 19.02.2008
Сообщений: 9,177

Исправления надо делать после первого запуска, а не до. Чтобы знать кто именно накосячил. Особенно, если "многого не знают, и надо объяснять".

З.Ы. Это так, совет. Без наездов
Ответить с цитированием
Ответ


Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Динамическое создание вкладок mwnuke ExtJS 2 12.11.2009 12:21
Динамическое создание панелек dagster Элементы интерфейса 2 07.08.2009 12:49
динамическое создание тадлицы magistr_bender Элементы интерфейса 14 23.07.2009 17:36
Динамическое создание событий в цикле IcyBox Общие вопросы Javascript 2 01.06.2009 08:42
Динамическое создание script src RaiDeR Общие вопросы Javascript 11 22.04.2009 17:04