Javascript-форум (https://javascript.ru/forum/)
-   jQuery (https://javascript.ru/forum/jquery/)
-   -   Почему-то не работает событие клик (https://javascript.ru/forum/jquery/29286-pochemu-ne-rabotaet-sobytie-klik.html)

pro_xaoc 22.06.2012 09:49

Почему-то не работает событие клик
 
Приветствую Всех!
У меня возникла одна проблемка. У меня почему-то не работает событие клик. Вот код:
$('img[alt="add"]').click(function(){
		var height = $(window).height();
		var width = $(window).width();
		$('#main_div').before('<div id="fonAddCat" style="height:'+height+'px; width:'+width+'px; "></div>');
		$('#fonAddCat').animate({opacity: 0.5},1000);
	})
	
	$('#fonAddCat').click(function(){ //Вот этот вот код не работает
		
		alert('hello');
	})

Не пойму, почему не работает ... Заранее спасибо.

Serg_pnz 22.06.2012 09:59

$('#fonAddCat').live('click', function(){ //Вот этот вот код работает
        alert('hello');
   })

pro_xaoc 22.06.2012 10:06

Serg_pnz,
премного благодарен! Не знал, что в jquery есть такая функция :)

devote 22.06.2012 10:58

Цитата:

Сообщение от pro_xaoc
Не знал, что в jquery есть такая функция

ага, с пометкой DEPRECATED

pro_xaoc 22.06.2012 11:13

вынужден спросить еще кое о чем. Вот есть метод before(), куда я добавляю текст html, но он не удобен, когда я использую большой кусок html, приходится извращаться так:
$('#main_div').before('<div id="addCat">'
			+'<div>Добавить категорию</div>'
			+'<div><input type="text" /> в '
			+'<select>'
				+'<option>Без названия</option>'
			+'</select>'
			+'</div>'
			+'<div><input type="button" value="Добавить" /></div>');

На какой метод его можно заменить, чтобы без всяких плюсиков и кавычек было? Ну к примеру как HEREDOC в PHP?

Deff 22.06.2012 11:33

pro_xaoc,
Это не проблема метода
Создайте текстовую переменную a до вставки и вставляйте a
более удобная запись такая
a='\  //Переменная для вставки
<div id="addCat">\
<div>Добавить категорию</div\
<div><input type="text" />\
<select><option>Без названия</option>\
</select>\
</div>\
<div><input type="button" value="Добавить" /></div>';

$('#main_div').before(a)


Или вообще в одну строку

Serg_pnz 22.06.2012 14:34

devote,
не знал, что с 1.7 устаревшая, спасибо за замечание!

Тогда on() или вообще так http://learn.javascript.ru/play/pUUQ2

melky 22.06.2012 14:54

Цитата:

Сообщение от Serg_pnz
не знал, что с 1.7 устаревшая, спасибо за замечание!

с момента появления on - jq 1.7 - все методы назначения обработчиков находятся с пометкой DEPRECATED, и в своём теле вызывают эту функцию - т.е. проксируют.

Serg_pnz 22.06.2012 14:57

melky,
надо посмотреть несжатый код на предмет сего. Т.к. к сожалению "методы назначения обработчиков" для меня почти на китайском((

melky 22.06.2012 15:01

Цитата:

Сообщение от Serg_pnz (Сообщение 183325)
melky,
надо посмотреть несжатый код на предмет сего. Т.к. к сожалению "методы назначения обработчиков" для меня почти на китайском((

А никуда ходить не надо. Вот исходные коды обработчиков с последней версии.
<script src="http://code.jquery.com/jquery-1.7.2.js"></script>

<script>
alert( "LIVE:\n\n"+$().live );
alert( "BIND:\n\n"+$().bind );
alert( "ONE:\n\n"+$().one );
alert( "CLICK и остальные:\n\n"+$().click );
</script>


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