ох многовато приложил, ща я тебе алгоритм накину
<html> <head> <script> $(function(){ function counter(class_name){ var total = 0; $('#tovar .'+class_name).each(function(){ total += Number($(this).text()); }); $('#tovar .'+ class_name +'_total').html( total ); } counter('weight'); counter('sum'); $('#start').live('click', function(){ counter('weight'); counter('sum'); }); $('#tovar tr').live('dblclick', function(){ $(this).remove(); counter('weight'); counter('sum'); }); }); </script> </head> <body> <table id="tovar"> <tbody> <tr> <td>товар1</td><td class="weight">20</td><td class="sum">200</td> </tr> <tr> <td>товар2</td><td class="weight">40</td><td class="sum">2050</td> </tr> <tr> <td>товар3</td><td class="weight">60</td><td class="sum">2065</td> </tr> </tbody> <tfoot> <tr> <th>Общий вес</th><th colspan="2" class="weight_total"></th> </tr> <tr> <th>Общая сумма</th><th colspan="2" class="sum_total"></th> </tr> </tfoot> </table> <input type="button" id="start" value="посчитать вес"> </body> </html> принцип работы моего кода таков - при загрузке страницы, подсчитываются общий вес и сумма товаров, после загрузки если дважды кликнуть по одному товару, то он удалится и общий вес и сумма пересчитаются, так можно пересчитывать нажатием на кнопку, ну а если добавлен новый товар, тот же принцип как и с удалением, ну его думаю сам допилишь |
Да, приложил не то слово как много)) Ещё раз приношу извинения) Сейчас беру напилник и пилю) Спасибо за наводку! Есть нескромный вопрос - можно ли будет отписаться тебе на мыло, если будут вопросы?
|
вот это трудночитаемый код,
$.post("/ves/function.inc.php", {'action':action,'type':type,'din':din,'diam':diam,'length':length,'rate':rate,'ves':ves}, лучше делайте так $.post("/ves/function.inc.php", { 'action' : action, 'type' : type, 'din' : din, 'diam' : diam, 'length' : length, 'rate' : rate, 'ves' : ves }, это не ошибка, просто так на много наглядней)) |
пиши, не вопрос, но я редко туда захожу, лучше тут в личку пиши
|
Понял, мой косяк. Читабельность кода следует чтить:)
|
это у нас получается анонимная функция, если я правильно понимаю.
$(function(){ function counter(class_name){ var total = 0; $('#tovar .'+class_name).each(function(){ total += Number($(this).text()); }); $('#tovar .'+ class_name +'_total').html( total ); } counter('weight'); counter('sum'); $('#start').live('click', function(){ counter('weight'); counter('sum'); }); $('#tovar tr').live('dblclick', function(){ $(this).remove(); counter('weight'); counter('sum'); }); }); А как можно сделать ,что бы я мог считать общий вес, при изменении вес какого-нибудь товара? $("input#weight").live("change", function() { var _this = this; chWeight(_this); }); ... ... ... и её обработка: function chWeight(_this) { var num = $(_this).attr('class').slice(1); var weight= $("input#weight.n"+num).val(); var total = 0; $('#tovar .'+class_name).each(function(){ total += Number($(this).text()); }); $('#tovar .weight').html( total ); } }); |
Мне просто вот что инетересно - как правильн оразграничить, что бы они обе считали свои задачи, отдельно. Когда у меня функции не анонимные ,я могу их добавить, например, и в свой обработчик нажатия кнопки "+" при добавлении строки, и общее количество веса или цены у меня пересчитается
|
что бы change работал нужно его привязать к текстовому поле например:
<input type="text" value="20" class="input_sum"> $('.input_sum').live('change', function(){ alert($(this).val()) }) |
Пытаюсь подвязать на свою задачу, в принципе пока ясно)
|
$("input#allCount").live("change", function() { var _this = this; chCount(_this); }); ... ... function chCount(_this){ var total = 0; $('input#rate').each(function(){ total += Number($(this).text()); }); $('input#rate').html( total ); } привязал к элементу, указал где и что считать, добавил взов функции пересчета при нажатии кнопки добавить и удалить. Ппц, все равно одна и та же беда |
Часовой пояс GMT +3, время: 00:54. |