Двойной вызов функции
Есть простой код:
$(".rbutton").click(function() {
upNumbers();
});
function upNumbers ()
{
$('#numbers').html("Всего в наличии: <img src='img/ajax-loader1.gif' alt='loading...'/>");
var mtype = DoIt('labeled');
$.post('test.php', {act:'ajax_num', type:mtype}, function(text){
$('#numbers').html('Всего в наличии: <b>'+text+'</b>')
}, 'text');
};
При клике по радио кнопкам вызов upNumbers происходит 2 раза, со старым значением и с новым, в следствии чего отображаются данные для старого или нового запроса с 50% вероятностью. Функция DoIt просто возвращает номер выделенной радиокнопки в группе. Почему вызов функции click происходит ещё до смены выделения и после? |
Цитата:
<!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">
</style>
<script type="text/javascript">
$(document).ready(function(){
$(':radio').click(function(){
alert('Test...');
});
});
</script>
</head>
<body>
<input type='radio' name='test' />
<input type='radio' name='test' />
<input type='radio' name='test' />
</body>
</html>
Вызов происходит только 1 раз... |
Как бы это показать...
Специально оставил в коде только
$(".rbutton").click(function() {
alert('1');
};
Но я вижу это сообщение 2 раза... |
Вот, укоротил код, оставив тока боксы:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<script type="text/javascript" src="http://code.jquery.com/jquery-latest.js"></script>
<script type="text/javascript">
$(document).ready(function(){
$(".rbutton").click(function() {
alert('1');
});
});
</script>
</head>
<body>
<p class="rbutton"><input type="radio" name="labeled" value="1" id="labeled_1" checked="checked"><label for="labeled_1">1</label></p>
<p class="rbutton"><input type="radio" name="labeled" value="2" id="labeled_2"><label for="labeled_2">2</label></p>
<!--<p class='rbutton'><input type='radio' name='labeled' value='3' id='labeled_3' /><label for='labeled_3'>3</label></p>
--><p class="rbutton"><input type="radio" name="labeled" value="4" id="labeled_4"><label for="labeled_4">4</label></p>
<p class="rbutton"><input type="radio" name="labeled" value="5" id="labeled_5"><label for="labeled_5">5</label></p>
<p class="rbutton"><input type="radio" name="labeled" value="6" id="labeled_6"><label for="labeled_6">6</label></p>
<p class="rbutton"><input type="radio" name="labeled" value="7" id="labeled_7"><label for="labeled_7">7</label></p>
</body>
</html>
|
Понял в чём дело, но как это исправить, т.е. чтобы при клике по лабелу не активировалось 2 раза
|
Цитата:
|
Но тогда чекбокс выделяться не будет, придётся ещё код и для него писать...
А это уже повторение функционала браузера... Наверное надо не по клику, а по измениею состояния боксов... |
Tmin10, выбирать тебе... :)
|
Если вдруг кому-то поможет, то я сделал так:
$("[name=labeled]").change(function() { });
ksa, спасибо Вам! |
| Часовой пояс GMT +3, время: 23:35. |