Javascript-форум (https://javascript.ru/forum/)
-   Элементы интерфейса (https://javascript.ru/forum/dom-window/)
-   -   Не запускается функция click() (https://javascript.ru/forum/dom-window/16329-ne-zapuskaetsya-funkciya-click.html)

qwaker 04.04.2011 12:31

Не запускается функция click()
 
Есть список чекбоксов. Необходимо, чтобы по нажатию на элемент - все чекбоксы сделались невыбранными.

Делаю так.
Добавляю элемент:
$('#tarea2').append('<div id="messageTwo" style="cursor:hand;cursor:pointer; ")>Очистить список</div>');};


Назначаю функцию, отключающую чекбоксы.
$('#tarea2 #messageTwo').click( function(){
$('#tarea2 :checkbox').css('display','none');
    $('#tarea2 label').css('display','none');
$('#tarea :checkbox').attr('checked',false);
});


Ничего не работает =( Хотя если поставить область не $('#tarea2 #messageTwo'), а $('#tarea2'), то при клике на tarea2 - чудесным образом работает. Никак не пойму - почему ??

По моему разумению, должно работать. Но не работает для элемента messageTwo.

walik 04.04.2011 12:41

Все работает.
Посмотри на что ругается браузер, может у тя ошибочка в коде.

Skipp 04.04.2011 12:46

зачем вы пишете селектор: #tarea2 #messageTwo ?
ведь id это уникальный атрибут каждого элемента и вполне достаточно будет: #messageTwo
Во вторых, вы уверены, что элемент добавлен перед тем как вы ему пытаетесь повесить событие, скорее всего в этом и проблема?

qwaker 04.04.2011 12:52

Цитата:

Сообщение от walik (Сообщение 99170)
Все работает.
Посмотри на что ругается браузер, может у тя ошибочка в коде.

В том и дело - что не ругается. Просто при клике нет никакой реакции, как будто и не кликаю.

walik 04.04.2011 12:54

<html>
<head>
<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.5.1/jquery.min.js"></script>
<script type="text/javascript" language="javascript">
$(document).ready(function() {
	$(document.body).append('<div id="messageTwo" style="cursor:hand;cursor:pointer; ")>Очистить список</div>');
	$('#messageTwo').click(function() {
		$(':checkbox').removeAttr('checked');
	});
});
</script>
</head>
<body>
<input type="checkbox" checked /><br />
<input type="checkbox" /><br />
<input type="checkbox" checked /><br />
<input type="checkbox" /><br />
</body>
</html>

Вот вполне нормальная реакция. У вас в коде что то не так. Возможно как сказал Skipp,
Цитата:

Сообщение от Skipp
вы уверены, что элемент добавлен перед тем как вы ему пытаетесь повесить событие, скорее всего в этом и проблема?


qwaker 04.04.2011 12:55

Цитата:

Сообщение от Skipp (Сообщение 99171)
зачем вы пишете селектор: #tarea2 #messageTwo ?
ведь id это уникальный атрибут каждого элемента и вполне достаточно будет: #messageTwo
Во вторых, вы уверены, что элемент добавлен перед тем как вы ему пытаетесь повесить событие, скорее всего в этом и проблема?

Точно, перенес объявление функции в другое место - все заработало!! Спасибо за подсказку!

qwaker 04.04.2011 12:56

Цитата:

Сообщение от walik (Сообщение 99173)
[HTML run]

Вот вполне нормальная реакция. У вас в коде что то не так. Возможно как сказал Skipp,

walik, спасибо, разобрался. Действительно не туда затолкал функцию.


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