Javascript.RU

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

Почему не работает второй Event?
Подскажите, почему не работает Event??????
Еvent указан в коде в комментарии.



<html>
<head>
<title></title>
</head>
<body>
<script>
function ButtonAnzeigen(strId, zIndexAngabe, strPosition){
this.strId = strId;
this.zIndexAngabe = zIndexAngabe;
this.strPosition = strPosition;
a = document.createElement("button");
a.style.zIndex = zIndexAngabe;
a.innerHTML = "Analyse";
a.style.right = 0;
a.style.bottom = 0;
a.style.color = "rgb(0,100,100)";
a.style.position = strPosition;
a.id = strId;
document.body.appendChild(a);
}
function TextZerlegen(){
m = document.createElement("div");
document.body.appendChild(m);
m.id = "div";
v = document.getElementById("iA").value;
c = new Array();
for(x = 0; x < v.length; x++){
c[x] = document.createElement("span");
m.appendChild(c[x]);
c[x].innerHTML = v[x];
c[x].id = "span"+x;
}
m.style.position = "absolute";
m.style.top = 100;
m.style.fontSize = 50;
m.style.fontFamily = "Calibri";
}
function InputArea_Anzeigen(str_idAngabe, strPositionAngabe, zIndexAngabe){
this.strPositionAngabe = strPositionAngabe;
this.str_idAngabe = str_idAngabe;
this.zIndexAngabe = zIndexAngabe;
document.body.style.backgroundColor = "#f3f3f3";
v = document.createElement("input");
v.id = str_idAngabe;
v.style.position = strPositionAngabe;
v.style.zIndex = zIndexAngabe;
v.style.color = "rgb(255,255,255)";
v.style.backgroundColor = "rgb(0,0,150)";
v.style.left = 0;
v.style.top = 0;
v.style.fontSize = 50;
v.style.textShadow = "red 0 0 1px, red 5px 5px 3px";
v.style.width = window.innerWidth;
document.body.appendChild(v);
}








// Anwendungsblock

var iA = new InputArea_Anzeigen("iA", "absolute", 0);
var b = new ButtonAnzeigen("b", 20, "absolute");

a.onclick = function(){
TextZerlegen();
};

// Почуму он не работает???????????????
document.getElementById("span1").onclick = function(){

alert("welcome");

};




</script>
</body>

</html>
Ответить с цитированием
  #2 (permalink)  
Старый 13.10.2012, 06:49
Кандидат Javascript-наук
Отправить личное сообщение для Your Посмотреть профиль Найти все сообщения от Your
 
Регистрация: 03.10.2012
Сообщений: 147

<!DOCTYPE html>
<html>
<head>
	<meta charset="utf-8">
	<title>Example</title>
</head>
<body>
<script type="text/javascript">
	function setElement(element) {
		return document.createElement(element);
	}
	function getElement(element) {
		return document.getElementById(element);
	}
	function append(element1,bool,element2) {
		bool=bool || false;
		if(!bool) {
			return document.body.appendChild(element1);
		} else {
			return element1.appendChild(element2);
		}
	}
	var div=setElement('div');
		div.id='div';
		append(div);
	var button=setElement('button');
		button.innerHTML='Click';
		append(div,true,button);
	var i=0;
		button.onclick=function() {
		var span=setElement('span');
			span.id='span'+i;
			span.innerHTML='Text span'+i;
			span.onclick=function() {
				alert(this.id);
			};
			append(div,true,span);
		++i;
		}
</script>
</body>
</html>

Последний раз редактировалось Your, 13.10.2012 в 07:09.
Ответить с цитированием
  #3 (permalink)  
Старый 13.10.2012, 17:46
Аватар для lord2kim
Профессор
Отправить личное сообщение для lord2kim Посмотреть профиль Найти все сообщения от lord2kim
 
Регистрация: 03.05.2011
Сообщений: 848

JavaScriptProgrammer, а как бы вы хотели чтобы это работало?
// Почуму он не работает???????????????
document.getElementById("span1").onclick = function(){

alert("welcome");

};

span1 не существует на момент вызова данных строк
Ответить с цитированием
  #4 (permalink)  
Старый 13.10.2012, 22:54
Интересующийся
Отправить личное сообщение для JavaScriptProgrammer Посмотреть профиль Найти все сообщения от JavaScriptProgrammer
 
Регистрация: 13.10.2012
Сообщений: 22

Почему не работает второй Event? Ответ.
Почему span1 не существует? В FireDebug в BODY существует. Я объявлял в функции глобальный массив переменных. Этот глобальный массив переменных, что пропадает, после того как функция себя выполнила?. Или я чего-то не так понимаю? Объясните пожалуйста.

function TextZerlegen(){
m = document.createElement("div");
document.body.appendChild(m);
m.id = "div";
v = document.getElementById("iA").value;

// объявлен глобально, без var
c = new Array();
for(x = 0; x < v.length; x++){
c[x] = document.createElement("span");
m.appendChild(c[x]);
c[x].innerHTML = v[x];
c[x].id = "span"+x;
}
m.style.position = "absolute";
m.style.top = 100;
m.style.fontSize = 50;
m.style.fontFamily = "Calibri";
}

// Почуму он не работает???????????????
document.getElementById("span1").onclick = function(){

alert("welcome");

};
Ответить с цитированием
  #5 (permalink)  
Старый 13.10.2012, 23:06
Интересующийся
Отправить личное сообщение для JavaScriptProgrammer Посмотреть профиль Найти все сообщения от JavaScriptProgrammer
 
Регистрация: 13.10.2012
Сообщений: 22

Почему Вы в event onclick кнопки вкладываете еvent onclick span????????
Почему второй onclick надо вкладывать в onclick кнопки??????????
Почему второй onclick не работает если его не вкладывать??????

button.onclick=function() {
31
        var span=setElement('span');
32
            span.id='span'+i;
33
            span.innerHTML='Text span'+i;
34
            span.onclick=function() {
35
                alert(this.id);
36
            };
Ответить с цитированием
  #6 (permalink)  
Старый 14.10.2012, 11:33
Аватар для lord2kim
Профессор
Отправить личное сообщение для lord2kim Посмотреть профиль Найти все сообщения от lord2kim
 
Регистрация: 03.05.2011
Сообщений: 848

Сообщение от JavaScriptProgrammer Посмотреть сообщение
Почему span1 не существует? В FireDebug в BODY существует. Я объявлял в функции глобальный массив переменных. Этот глобальный массив переменных, что пропадает, после того как функция себя выполнила?. Или я чего-то не так понимаю? Объясните пожалуйста.
объявлен то он объявлен...но он пустой...и пока функция не выполнится ничего не произойдет, т.е. никаких элементов создано не будет...
я не знаю когда вы его наблюдаете "В FireDebug в BODY"...но до вызова функции TextZerlegen() никаких span+x не появится

Сообщение от JavaScriptProgrammer Посмотреть сообщение
Почему Вы в event onclick кнопки вкладываете еvent onclick span????????
Почему второй onclick надо вкладывать в onclick кнопки??????????
Почему второй onclick не работает если его не вкладывать??????

button.onclick=function() {
31
        var span=setElement('span');
32
            span.id='span'+i;
33
            span.innerHTML='Text span'+i;
34
            span.onclick=function() {
35
                alert(this.id);
36
            };
1. здесь к создаваемому элементу типа кнопка добавляется обработчик события нажатия мыши...в этом обработчике создается, а патом добавляется span к div, если он существует, или, в ином случае, к body; к span добавляется отдельный обработчик клика мыши

2. второй onclick относится уже к создаваемому span

3. можете потом отдельно добавить данное событие к созданным элементам

Последний раз редактировалось lord2kim, 14.10.2012 в 11:41.
Ответить с цитированием
  #7 (permalink)  
Старый 15.10.2012, 04:30
Кандидат Javascript-наук
Отправить личное сообщение для Your Посмотреть профиль Найти все сообщения от Your
 
Регистрация: 03.10.2012
Сообщений: 147

Для примера показано.
Так как если будет так называемая запись, чтобы после обновления страницы все оставалось на местах, то тут нужно будет создать и заполнять массив, где после его разбирать и указывать события.

Последний раз редактировалось Your, 15.10.2012 в 04:37.
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Почему данный скрипт работает только в IE? hacker_007 Общие вопросы Javascript 4 08.09.2011 16:58
Почему offset().top не работает в ИЕ Afonin jQuery 2 08.07.2011 10:08
Почему простейший java не работает только в Мазиле, Помогите... androlic Элементы интерфейса 4 05.07.2011 03:18
Почему в Mozille не работает скрипт? lukingnu Firefox/Mozilla 5 21.04.2011 20:04
Почему не работает функция js? oliwin Общие вопросы Javascript 2 11.07.2010 13:16