Javascript-форум (https://javascript.ru/forum/)
-   Events/DOM/Window (https://javascript.ru/forum/events/)
-   -   onclick прервать выполнение функции (https://javascript.ru/forum/events/37610-onclick-prervat-vypolnenie-funkcii.html)

wgt 26.04.2013 19:03

onclick прервать выполнение функции
 
Доброго всем дня!

Есть задача прервать выполнение функции, вот собственно код javascript:
$("#teaser_<?php echo $item->id; ?> p.not_right_blic").click(function() {
  $(this).removeClass("not_right_blic");
  $(this).addClass("not_right_red");
   });


В вёрстке выходит так:
<p class="not_right_blic">неправильный ответ</p>
<p class="not_right_blic">неправильный ответ</p>
<p class="not_right_blic">неправильный ответ</p>


Количество неправильных ответов заранее неизвестно!
Как при клике по любому элементу из списка (<p class="not_right_blic">), заблокировать дальнейшее выполнение функции ($(this).addClass("not_right_red");) ?

Заранее благодарен всем кто откликнется!

ksa 26.04.2013 21:12

wgt, ты пример можешь нормальный сделать? И путне рассказать что нужно?

Пока есть 2 огрызка и не понятный вопрос...

wgt 26.04.2013 21:43

Не знаю даже как ещё объяснить точнее))

Попробую проще.
Есть вёрстка
<div id="уникальный идентификатор">
<p class="not_right_blic">неправильный ответ</p>
<p class="not_right_blic">неправильный ответ</p>
<p class="not_right_blic">неправильный ответ</p>
</div>


При нажатии на любой из элементов в DIV-е с уникальным ID, с классом ".not_right_blic" он меняется на класс ".not_right_red".

Задача заключается в следующем. При нажатии на любой ".not_right_blic" в DIV-е ЕДИНОЖДЫ! Сменить у ВЫБРАННОГО класс на ".not_right_red", а остальные теги не трогать(заблокировать), т.е. остановить выполнение функции.

Вот сама функция яваскрипта:

$("div#(с уникальным идентификатором) p.not_right_blic").click(function() {
  $(this).removeClass("not_right_blic");
  $(this).addClass("not_right_red");
});


У меня же получается, что кликая по всем тегам с классом ".not_right_blic" они все меняются на класс ".not_right_red"

Спасибо что откликнулись

wgt 30.04.2013 20:30

неужели никто не знает решения?((

ksa 30.04.2013 20:52

Цитата:

Сообщение от wgt
Попробую проще.

А нужно понятно. :D
Объясняльщик ты еще тот! Как вариант...

<!DOCTYPE html>
<html>
<head>
<script src="http://code.jquery.com/jquery-latest.js"></script>
<!--
<link rel="stylesheet" type="text/css" href="tmp.css" />
-->
<style type="text/css">
.block {
	margin-bottom: 5px;
	border: 1px solid;
}
.block > p {
	margin: 2px;
}
.not_right_red {
	color: red;
}
</style>
<script type="text/javascript">
$(document).ready(function (){
	$('.block > .not_right_blic').click(function (){
		$(this.parentNode).find('.not_right_blic').unbind('click')
		$(this).removeClass("not_right_blic");
		$(this).addClass("not_right_red");
	});
});
</script>
</head>
<body>
<div class='block'>
	<p class="not_right_blic">неправильный ответ</p>
	<p class="not_right_blic">неправильный ответ</p>
	<p class="not_right_blic">неправильный ответ</p>
</div>
<div class='block'>
	<p class="not_right_blic">неправильный ответ</p>
	<p class="not_right_blic">неправильный ответ</p>
	<p class="not_right_blic">неправильный ответ</p>
</div>
</body>
</html>


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