Javascript-форум (https://javascript.ru/forum/)
-   Events/DOM/Window (https://javascript.ru/forum/events/)
-   -   Не работает .click() (https://javascript.ru/forum/events/29085-ne-rabotaet-click.html)

Jest 14.06.2012 13:23

Не работает .click()
 
Здравствуйте! Столкнулся спроблемой: создав js'ом некий div, не могу обработать далее нажатие на этот созданый див.
$(document).ready(function(){
		var ln; var text;
		
		$("#changed").click(function () {
		  $(this).hide();
		  $("<div class='hz' id='pole'></div>").prependTo($("#body")); //вот создание того дива
		  $("<input type='text' id='save1' class='save1'>").prependTo($(this).parent()).focus();
		});
		
		
		$("#pole").click(alert("Любой текст"));
		
	 });

В таком варианте код
$("#pole").click(alert("Любой текст"));
обрабатывается почему-то сразу при загрузке страницы, даже когда объект #pole ещё не был создан.

Так же я пробовал использовать .live(), но ничего не вышло, это выглядело примерно так:
$('#pole').live("click".poleclose(););
		
		function poleslose(){
			alert("Любой текст");
		}

и мой JS код переставал работать вообще.

Так вот: как нормально обработать событие click для созданного дива с id='pole' ??

Deff 14.06.2012 13:47

Jest,
Нарисуйте Ваш код полностью, вместе с HTML

отобразите элементы:
#changed
#body
И как Вы определяете - что кликаете по элементу #pole
Он у Вас никак не выделен(*по крайней мере в выложееном коде

Jest 14.06.2012 14:15

<body id='body'>
	
	<table width="70%" height="100%" align="center" border="0">
		<tr class="top_block">
			<td colspan="2">
				<div class="top_bg"><div><span class="big" id="changed">Название сайта</span>И т.д....


Суть в том, чтобы при нажатии на надпись (#changed) появлялся div (#pole), а заместо надписи, на которую нажали, появляется текстовое поле, с этой надписью. Суть div'a #pole в том, чтобы залить весь документ, позади появившегося текстового поля, полупрозрачно-белым цветом.
Если надо, вот стиль того дива:
div.hz{
	background-color: rgba(255,255,255,0.7);
	position: absolute;
	top: -10%;
	left: -10%;
	height: 110%;
	width: 110%;
	z-index: 1;
}

Это всё реализовать мне удалось, но я хочу чтобы при нажатии в любую точку за пределами текстового поля (т.е. при нажатии на div #pole) div #pole изчезал, текстовое поле тоже исчезало, и на его месте появлялся текст (на который надо было нажать сначала #changed), но уже изменённый. Вот как-то так)

Jest 17.06.2012 18:13

Спасибо за помощь :) Проблему, кстати, решил.


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