вопрос по $.ajax
за помощь отблагодарю денежкой :victory:
предложения по улучшению кода с большим удовольствием приму. я хочу сделать голосование с возможностью выбора возраста. о работе скрипта: есть кнопки "ЗА(ON)" и "ПРОТИВ(OFF)", при нажатии на одну из них вываливается список с возростом, типа Выберите Ваш возраст: моложе 20 21-30 31-40 41-50 51-60 61 старше где пользователь выбирает свой возраст, кликает например на кнопку "21-30" и с помощью AJAX'a пошли данные к базе! скажу сразу что ВСЕ как я задумал работает!! но есть одно, маленький нюанс. суть проблемы: если пользователь кликает например по кнопке "ЗА(ON)" -> выбирает возраст -> запрос идет к базе от "ЗА(ON)". Итого: РАБОТАЕТ а вот если кликает например сначала по кнопке "ЗА(ON)", потом "ПРОТИВ(OFF)" (и наоборот), тоесть сначала хотел проголосовать ЗА, потом передумал, нажал на "ПРОТИВ(OFF) -> выбирает возраст -> вот тут-то и косяк, запрос идет к базе от "ЗА(ON)" и "ПРОТИВ(OFF)". то есть почему-то выполняется 2ое обращение у базе! вот код: <script type="text/javascript"> var j = jQuery; function footer(OnOff){ j(OnOff).click(function(){ j(".panel").slideUp("slow"); j(".boxOn").css({'display':'none'}); j(".boxOff").css({'display':'none'}); j(".center").css({'display':'block'}); return false; }); } function ajaxURL(box, rat, age, objid){ j(box).html('<div class="load"></div>'); j.ajax({ type:"POST", url:"ajax.index.php", data:"option=com_kino&task=vote"+rat+age+"&id=<?=$id;?>", cache:false, success:function(html){j(box).html(html);} }); } j(document).ready(function(){ j(".center").css({'display':'none'}); <?php /* кликаем на .boxOn > вываливается панель #panel */?> j("#on").bind("click", function(){ j(".panel").attr('id','panelON').slideDown("slow"); <?php /* присваиваем уникальный id каждому элементу vozrast */ ?> j(".panel div").attr('id',function(index){return 'on_'+index;}).addClass("vozrast_On").removeClass("vozrast_Off"); <?php /* выводим кнопки, ловим клик и обрабатываем AJAX */?> j("#on_0").one("click", function(){ajaxURL(".boxLeft", "&query=on", "&age=0", "<?=$id;?>");}); j("#on_1").one("click", function(){ajaxURL(".boxLeft", "&query=on", "&age=1", "<?=$id;?>");}); j("#on_2").one("click", function(){ajaxURL(".boxLeft", "&query=on", "&age=2", "<?=$id;?>");}); j("#on_3").one("click", function(){ajaxURL(".boxLeft", "&query=on", "&age=3", "<?=$id;?>");}); j("#on_4").one("click", function(){ajaxURL(".boxLeft", "&query=on", "&age=4", "<?=$id;?>");}); j("#on_5").one("click", function(){ajaxURL(".boxLeft", "&query=on", "&age=5", "<?=$id;?>");}); footer(".vozrast_On"); }); <?php /* отрицательный отзыв */?> j("#off").bind("click", function(){ j(".panel").attr('id','panelOFF').slideDown("slow"); <?php /* присваиваем уникальный id каждому элементу vozrast */?> j(".panel div").attr('id',function(index){return 'off_'+index;}).addClass("vozrast_Off").removeClass("vozrast_On"); <?php /* выводим кнопки, ловим клик и обрабатываем AJAX */?> j("#off_0").one("click", function(){ajaxURL(".boxRight", "&query=off", "&age=0", "<?=$id;?>");}); j("#off_1").one("click", function(){ajaxURL(".boxRight", "&query=off", "&age=1", "<?=$id;?>");}); j("#off_2").one("click", function(){ajaxURL(".boxRight", "&query=off", "&age=2", "<?=$id;?>");}); j("#off_3").one("click", function(){ajaxURL(".boxRight", "&query=off", "&age=3", "<?=$id;?>");}); j("#off_4").one("click", function(){ajaxURL(".boxRight", "&query=off", "&age=4", "<?=$id;?>");}); j("#off_5").one("click", function(){ajaxURL(".boxRight", "&query=off", "&age=5", "<?=$id;?>");}); footer(".vozrast_Off"); }); }); </script> <div style='text-align:center;margin-top:5px;'> <div class='boxLeft'><?=$sumON; /*число из базы*/ ?></div> <div class='boxOn' id='on'></div><div class='boxOff' id='off'></div><div class='center'></div> <div class='boxRight'><?=$sumOFF; /*число из базы*/ ?></div> </div><div style='clear:both;'></div> <div class='panel'>Выберите Ваш возраст: <div>моложе 20</div> <div>21-30</div> <div>31-40</div> <div>41-50</div> <div>51-60</div> <div>61 старше</div> </div> |
Цитата:
Цитата:
как итог, выполняются оба. поэтому количество запросов будет такое же, как и количество кликов по #on/#off |
подскажите а как снять-то ?
|
Цитата:
|
Цитата:
это для On / Off |
Saymor,
браво. вам понадобилось всего 7 минут, чтобы найти нужный раздел документации. спрашивается, зачем задавать идиотские вопросы, если ответ на них находится самостоятельно достаточно быстро? |
Цитата:
предложением: Цитата:
главное зацепки.. спасибо! можно Вас отблагодарить? WMR или Qiwi ?? |
Цитата:
задать направление, и дать зацепки Цитата:
кошель скинул в личку |
Цитата:
как же отвязать on от off в моем случае? |
Цитата:
вы в курсе, что? : alert(function(){} == function(){});//false //================================ var qwe=function(){} alert(qwe == qwe);//true а в unbind надо передавать ту же функцию, а не такую же |
Часовой пояс GMT +3, время: 16:50. |