Составить функцию
Здравствуйте! Помогите составить функцию!
Имеется следующее: <div class="flok"> <select class="cd-select"> <option selected="selected" value="-1">Выбрать ответ</option> <option value="1">ответ1</option> <option value="0">ответ2</option> <option value="0">ответ3</option> <option value="0">ответ4</option> </select> </div> <div id="score"></div> Логика такова: При изменении select (при выборе какого-либо ответа), если его value = 1 (ответ правильный), то к переменной прибавляем 10. И выводим ее в div, с id = score. Если value = 0 (ответ неправильный), то отнимаем 5, и также выводим в div. И если 3 раза выбран неправильный ответ, то 3 раза будут отниматься очки. Самостоятельно дошел до этого:
function count(){
$var = 0;
if ($("select").bind("change"))
{
if ($("select").val() == 1)
$var = $var + 10;
else
$var = $var - 5;
}
$("#score").text($var);
return;
}
Помогите довести до ума! Спасибо! |
День добрый! После долгих "мучений", получилось следующее. Вот итог:
<div class="flok" id="dom"> <select id ="selec"> <option selected="selected" disabled="disabled" value="-1">Выбрать ответ</option> <option value="1">ответ1</option> <option value="0">ответ2</option> <option value="0">ответ3</option> <option value="0">ответ4</option> </select> </div>
$(document).ready(function(){
var a = 0;
$("#selec").bind("change", function(){
$(".yes, .no, #score").remove()
switch ($(this).val()) {
case "1":
$('<div class="yes"></div><div id="score"></div>').insertAfter('#dom').show("bounce", { times: 3 }, "slow");
a = a + 5;
$("#score").text(a);
break;
case "0":
$('<div class="no"></div><div id="score"></div>').insertAfter('#dom').show("bounce", { times: 3 }, "slow");
a = a - 10;
$("#score").text(a);
break;
}
});
});
1. После выбора правильного ответа - "выскакивает" зеленый значок и прибавляется 5 баллов. ![]() 2. После выбора неправильного ответа - "выскакивает" красный значок и отнимается 10 баллов. ![]() Такой вопрос С одним select'ом работает отлично. Но на странице, таких select'ов, предполагается много. Как заставить скрипт работать со всеми? Или может я изначально неправильно делаю скрипт? Пните в нужную сторону, или укажите ошибки. Спасибо! P.S. Я извиняюсь, но по-моему я ошибся.Тему нужно перенести в jQuery. |
Цитата:
$(".selec")
и html <select class ="selec"> |
Спасибо за ответ vadim5june!
id ="selec" убрал вообще, событие теперь отлавливаю так:
$("select").bind("change", function(){....
.Сейчас картина такая: <div class="flok" id="dom1"> <select> <option selected="selected" disabled="disabled" value="-1">Выбрать ответ</option> <option value="1">ответ1</option> <option value="0">ответ2</option> <option value="0">ответ3</option> <option value="0">ответ4</option> </select> </div> <div class="flok" id="dom2"> <select> <option selected="selected" disabled="disabled" value="-1">Выбрать ответ</option> <option value="1">ответ1</option> <option value="0">ответ2</option> <option value="0">ответ3</option> <option value="0">ответ4</option> </select> </div> <div class="flok" id="dom3"> <select> <option selected="selected" disabled="disabled" value="-1">Выбрать ответ</option> <option value="1">ответ1</option> <option value="0">ответ2</option> <option value="0">ответ3</option> <option value="0">ответ4</option> </select> </div>...... select'ы отличаются по id - dom1, dom2, dom3... и.т.д. Хотелось бы, чтобы зеленый или красный значок выскакивал напротив того select'а, в котором, в данный момент выбирают ответ и оставался там. В итоге, напротив каждого select'а должны быть значки(зеленый или красный). Как сделать, чтобы скрипт понимал в каком селекте идет изменение, выставлял там значок и не удалял его? |
Цитата:
ведь $(this).parent() будет указывать на родительский див куда и надо вставлять информацию |
$(this).parent() !!!! Ну конечно! Это то что надо! Спасибо!
|
Теперь все работает как задумывалось!:) Результат можно посмотреть здесь:zazaba.ru
|
| Часовой пояс GMT +3, время: 13:48. |