Javascript-форум (https://javascript.ru/forum/)
-   Элементы интерфейса (https://javascript.ru/forum/dom-window/)
-   -   Выполняется функция, а все что написано после нее игнорируется, (https://javascript.ru/forum/dom-window/8403-vypolnyaetsya-funkciya-vse-chto-napisano-posle-nee-ignoriruetsya.html)

libinstyle 24.03.2010 01:34

Выполняется функция, а все что написано после нее игнорируется,
 
Привет Всем! Помогите пожалуйста с проблемой,
Есть функция которая создает элемент:
function createElem(name, attrs, style, text,past_id,position,changed) {
  var i=document.getElementById('questionNum').value;
  var parent = document.getElementsByTagName('body')[0];
    var e = document.createElement(name);
    if (attrs) {
        for (key in attrs) {
            if (key == 'class') {
                e.className = attrs[key];
            } else if (key == 'id') {
                e.id = attrs[key]+i;
			
            } else {
                e.setAttribute(key, attrs[key]);
            }
        }
    }
    if (style) {
        for (key in style) {
            e.style[key] = style[key];
        }
    }
    if (text) {
		
		
		
        e.appendChild(document.createTextNode(text));
    }
    parent.appendChild(e);
    if(past_id){
          var old_elem = document.getElementById(past_id);
        if(position=='before'){            
            parent.insertBefore(e,old_elem)
        }else if(position=='after'){
            insertAfter(parent,e,old_elem);
        }
        if(changed!='' && changed==true){
            parent.removeChild(old_elem);
        }
    }
	
	
}


Вот так я эту функцию вызываю(внутри другой функции):
function callback(text,a)
      {
	
	createElem('div',
              {'class': 'myDivCSSClass', 'id': 'myDivId','align':'center'},
              {'width': '200px', 'height': '250px', 'background': '#3B9D00', 'color': '#fff'},
              'what the fuck',
              'test',
              'before',
                1);  

	//Допустим что после этого я хочу выбросить сообщение!
       
 alert('IIIIIIIIIIHHHHHAAAAAAAAAAAAAA!!!');
      }


Проблема в том, что если этот alert() поставить перед вызовом createElem() , ты выполнятся обе функции, а если наоборот, то создастся элемент, и сценарий остановится, алерта не будет.

Заранее спасибо!
P.S в оригинале я вызываю не алерт, а
document.getElementById('myDivId'+a).innerHTML = text;

отсюда и параметры 'a' и 'text', которые кстати передаются функции callback исправно.

Kolyaj 24.03.2010 08:36

Ошибка в createElem очевидно.

libinstyle 24.03.2010 16:21

))) Ну в самом деле! Это как в том анекдоте, "дядя я знаю что у вас сломалось, у вас сломался автобус"
Я уже не первый час пытаюсь понять что не так, а вы мне "Ошибка в createElem очевидно."
Может кто то видет эту ошибку?
Заранее спасибо!

Nekromancer 24.03.2010 16:26

а через отладчик запустить религия не позволяет?

Kolyaj 24.03.2010 16:44

Цитата:

Сообщение от libinstyle
parent.insertBefore(e,old_elem)

Цитата:

Сообщение от libinstyle
insertAfter(parent,e,old_elem);

Найдите 10 отличий. В консоль ошибок заглядывать надо иногда.


Часовой пояс GMT +3, время: 23:58.