0 / 0 / 0
Регистрация: 03.11.2011
Сообщений: 4
1

задачка ((

03.11.2011, 19:21. Показов 928. Ответов 6
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
ребят помогите кто чем сможет, ну или хотяб пути укажите, как сделать, задали вот(
Миниатюры
задачка ((  
0
03.11.2011, 19:21
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
03.11.2011, 19:21
Ответы с готовыми решениями:

Интерестная задачка
Доброго вечера. Есть пара textfield. В них динамически вводят числа паралельно. Можна ли сделать, чтобы при нажатии "+" и...

Небольшая задачка
при щелчке на странице найти на ней все элементы HTML <b> и выделить в них курсивом третью букву, если она есть Помогите пожалуйста...

Задачка по javascript
Создайте функцию find(arr, value), которая ищет в массиве arr значение value и возвращает его номер, если найдено, или -1, если не найдено....

6
front-end developer
 Аватар для Vicont
284 / 275 / 39
Регистрация: 31.08.2010
Сообщений: 577
Записей в блоге: 1
04.11.2011, 19:29 2
В чем сложность возникла? Или же может Вы не знаете как это сделать теоритически?
0
0 / 0 / 0
Регистрация: 03.11.2011
Сообщений: 4
04.11.2011, 19:34  [ТС] 3
да не знаю как теоретически, я умею складывать числа с помощью js ,но чтобы подать в такой форме вызывает лютое не понимание.
0
front-end developer
 Аватар для Vicont
284 / 275 / 39
Регистрация: 31.08.2010
Сообщений: 577
Записей в блоге: 1
06.11.2011, 20:30 4
Вот сама разметка:
HTML5
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
<!DOCTYPE HTML PUBLIC  "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
    <head>
        <meta http-equiv = "content-type" content = "text/html; charset=utf-8" />
        <title>Vicont</title>
        <style type="text/css">
            table.main{
                        margin-left: 30px;
                        border-collapse: collapse;
                        width: 180px;
            }
            
            table.main input{
                                width: 70px;
                                padding-right: 0px !important;
                                height: 15px;
                                padding-top: 5px;
                                border: 0px none;
                                cursor: default;
                                background: none;
            }
            
            table.main tr :first-child{
                                        text-align: right;
                                        padding-right: 15px;
                                        padding-bottom: 5px;
            }
            table.main button{
                                width: 90px;
                                height: 25px;
                                line-height: 20px;
                                display: block;
                                padding: 0px 7px 0px;
            }
            a{
                text-decoration: none;
                display: block;
                border-bottom: 1px dashed blue;
                height: 12px;
                width: 40px;
                font-size: 15px;
            }
            table.main tr:hover{
                                    background: #b4e0f4;
            }
            
            table.main tr:first-child:hover{
                                                background: none;
            }
            
        </style>
        <script type="text/javascript">
            
        </script>
    </head>
    <body>
        <button style="margin-bottom: 10px;">Добавить строчку</button>
        <table border="0" class="main">
            <tr>
                <td>Сумма, р.</td><td></td>
            </tr>
            <tr>
                <td><input type='text' value='11752' id='' readonly="readonly"/></td><td><a href="#">Удалить</a></td>
            </tr>
            <tr>
                <td><input type='text' value='777' id=''/></td><td><button>Сохранить</button></td>
            </tr>
            <tr>
                <td><input type='text' value='001' id=''/></td><td><a href="#">Удалить</a></td>
            </tr>
        </table>
        <table style="border-collapse: collapse; width: 125px;">
            <tr>
                <td>Итого: </td><td style="font-weight: bold;">565</td>
            </tr>
        </table>
    </body>
</html>
C javascript-ом тут нужно немного повозиться...
1
0 / 0 / 0
Регистрация: 03.11.2011
Сообщений: 4
07.11.2011, 06:37  [ТС] 5
Цитата Сообщение от Vicont Посмотреть сообщение
Вот сама разметка:
HTML5
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
<!DOCTYPE HTML PUBLIC  "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
    <head>
        <meta http-equiv = "content-type" content = "text/html; charset=utf-8" />
        <title>Vicont</title>
        <style type="text/css">
            table.main{
                        margin-left: 30px;
                        border-collapse: collapse;
                        width: 180px;
            }
            
            table.main input{
                                width: 70px;
                                padding-right: 0px !important;
                                height: 15px;
                                padding-top: 5px;
                                border: 0px none;
                                cursor: default;
                                background: none;
            }
            
            table.main tr :first-child{
                                        text-align: right;
                                        padding-right: 15px;
                                        padding-bottom: 5px;
            }
            table.main button{
                                width: 90px;
                                height: 25px;
                                line-height: 20px;
                                display: block;
                                padding: 0px 7px 0px;
            }
            a{
                text-decoration: none;
                display: block;
                border-bottom: 1px dashed blue;
                height: 12px;
                width: 40px;
                font-size: 15px;
            }
            table.main tr:hover{
                                    background: #b4e0f4;
            }
            
            table.main tr:first-child:hover{
                                                background: none;
            }
            
        </style>
        <script type="text/javascript">
            
        </script>
    </head>
    <body>
        <button style="margin-bottom: 10px;">Добавить строчку</button>
        <table border="0" class="main">
            <tr>
                <td>Сумма, р.</td><td></td>
            </tr>
            <tr>
                <td><input type='text' value='11752' id='' readonly="readonly"/></td><td><a href="#">Удалить</a></td>
            </tr>
            <tr>
                <td><input type='text' value='777' id=''/></td><td><button>Сохранить</button></td>
            </tr>
            <tr>
                <td><input type='text' value='001' id=''/></td><td><a href="#">Удалить</a></td>
            </tr>
        </table>
        <table style="border-collapse: collapse; width: 125px;">
            <tr>
                <td>Итого: </td><td style="font-weight: bold;">565</td>
            </tr>
        </table>
    </body>
</html>
C javascript-ом тут нужно немного повозиться...
Вау!, с разметкой хоть как то понятно теперь спасибо =) изменил только кодировку, то все в иероглифах было. Хотя на самом деле больше с js проблем, как вы верно подметили =(
0
0 / 0 / 0
Регистрация: 03.11.2011
Сообщений: 4
11.11.2011, 11:05  [ТС] 6
уф актуально
0
Просто любитель
 Аватар для GuardCat
626 / 464 / 120
Регистрация: 20.01.2011
Сообщений: 865
Записей в блоге: 2
11.11.2011, 13:47 7
Вроде сделано всё, кроме прилипания итоговой строки. Времени и желания уже не осталось, особенно учитывая, что вопросы позиционирования элементов для меня больные.

Выкладываю двумя кусками: HTML отдельно, Javascript отдельно (для удобства просмотра на сайте). Скопируйте JS внутрь тегов script. Используйте, пожалуйста, мою разметку. Я делал всё на основе разметки Vicont, но некоторые существенные для кода моменты поменял.

HTML5
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
<!DOCTYPE HTML>
<html>
    <head>
        <meta http-equiv = "content-type" content = "text/html; charset=utf-8" />
        <title>Список покупок</title>
        <style type="text/css">
            table.main {
                margin-left: 30px;
                border-collapse: collapse;
                width: 180px;
            }
            table.main td {
                height: 30px;
                width:  80px;
            }
            table.main {
                width: 220px;
            }
            table.main input{
                width: 70px;
                padding-right: 0px !important;
                height: 20px;
                margin-top: 2px;
                background: none;
                display: none;
            }
            table.main tr :first-child{
                text-align: right;
                padding-right: 15px;
                padding-bottom: 5px;
            }
            table.main button{
                width: 100%;
                height: 25px;
                line-height: 20px;
                display: none;
                padding: 0px 7px 0px;
            }
            a{
                text-decoration: none;
                font-size: 15px;
                width: 45px;
                display: none;
                border-bottom: 1px dashed blue;
            }
            table.main tr:hover{
                background: #b4e0f4;
            }
            
        </style>
        <script type="text/javascript">
 
        </script>
    </head>
    <body>
        <button style="margin-bottom: 10px;" onclick = "addRow()">Добавить строчку</button>
        <p style="margin: 0 0 0 60px">Сумма, р.</p>
        <table border="0" class="main" id = "list">
            <tr>
                <td><span>1000</span><input type='text' value='' /></td><td><a href="#">Удалить</a><button>Сохранить</button></td>
            </tr>            
            <tr>
                <td><span>500</span><input type='text' value='' /></td><td><a href="#">Удалить</a><button>Сохранить</button></td>
            </tr>
        </table>
        <table style="border-collapse: collapse; width: 125px;">
            <tr>
                <td>Итого: </td><td id = "total" style="font-weight: bold;">565</td>
            </tr>
        </table>
    </body>
</html>
Javascript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
window.onload = function () {
    var allTr = document.getElementsByTagName("tr");
    var x;
    for (x = 0; x < allTr.length - 1; x++) {
        attachEvents(allTr[x]);
    }
    sum();
}
function attachEvents(tr) {
    setEventsForTr(tr);
    setEventsForA(tr.getElementsByTagName("a")[0]);
    setEventsForSpan(tr.getElementsByTagName("span")[0]);
    setEventsForButton(tr.getElementsByTagName("button")[0])
    setEventsForInput(tr.getElementsByTagName("input")[0]);
}
function setEventsForTr(element){
    element.onmouseover = function () {
        var links = this.getElementsByTagName("a");
        var input = this.getElementsByTagName("input")[0];
        if(links.length > 0 && input.style.display !== "block") {
            links[0].style.display = "block"
        }
    }
    element.onmouseout = function () {
        makeStatusQuo(this);
        var link = this.getElementsByTagName("a")[0];
        var input = this.getElementsByTagName("input")[0];
        var span = this.getElementsByTagName("span")[0];
        if(link !== undefined) {
            link.style.display = "none";
        }       
    }
}
function setEventsForA(element) {
    element.onclick = function () {
        this.parentNode.parentNode.parentNode.removeChild(this.parentNode.parentNode);
        sum();
    }
}
function setEventsForInput(element) {
    element.onkeypress = function () {
        if(window.event.keyCode === 13) {
            this.parentNode.parentNode.getElementsByTagName("button")[0].onclick();
        }
    }
}
function setEventsForSpan(element) {
    element.onclick = function () {
        var input = this.parentNode.getElementsByTagName("input")[0];
        var button = this.parentNode.parentNode.getElementsByTagName("button")[0];
        var link = this.parentNode.parentNode.getElementsByTagName("a")[0];
        this.style.display = "none";
        input.style.display= "block";
        input.value = this.innerHTML;
        link.style.display = "none";
        button.style.display = "block";
        input.focus();
    }
}
function setEventsForButton(element) {
    element.onclick = function () {
        save(this.parentNode.parentNode);
        sum();
    }
}
function makeStatusQuo(excludeTr){
    var allTr = document.getElementsByTagName("tr");
    var x;
    for(x = 0; x < allTr.length - 1; x++) {
        if (allTr[x] !== excludeTr) {
            allTr[x].getElementsByTagName("input")[0].style.display = "none";
            allTr[x].getElementsByTagName("span")[0].style.display = "block";
            allTr[x].getElementsByTagName("button")[0].style.display = "none";
        }
    }
}
function save(tr){
    var span = tr.getElementsByTagName("span")[0];
    var input = tr.getElementsByTagName("input")[0];
    var button = tr.getElementsByTagName("button")[0];
    span.innerHTML = input.value;
    span.style.display = "block";
    makeStatusQuo();    
}
function sum() {
    var table = document.getElementById("list");
    var allSpan = table.getElementsByTagName("span");
    var result = 0, x, val;
    for (x = 0; x < allSpan.length; x++) {
        val = +allSpan[x].innerHTML
        if (!isNaN(val)) {
            result += val
        }
    }
    document.getElementById("total").innerHTML = result;
}
function addRow() {
    var table = document.getElementById("list");
    var tr = document.createElement("tr");
    tr.innerHTML = "<td><span>0.00</span><input type='text' value='' /></td><td><a href='#'>Удалить</a><button>Сохранить</button></td>"
    attachEvents(tr);
    table.insertBefore(tr, table.firstChild);
}
Добавлено через 8 минут
Важные моменты и минусы решения:
1. Поле для ввода скрывается, как только мыша уходит на другую строку, соответственно, следите во время ввода за курсором.
2. Некоторые вещи можно было бы оптимизировать, код нуждается в рефакторинге.
3. Если увести курсор не на следующую строку, а в сторону, когда отображается поле для ввода, оно (поле для ввода) останется на экране, пока курсор не заденет какую-либо строку таблицы.
4. В IE возможны проблемы!
1
11.11.2011, 13:47
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
11.11.2011, 13:47
Помогаю со студенческими работами здесь

Логическая задачка
Всем привет. Решил ради интереса написать пасьянс, да вот заглох, не успев начать:) Вот код: &lt;!DOCTYPE HTML PUBLIC...

Задачка с часами
Помогите,очень прошу Наши часы не корректны, они неверно отображают число минут и секунд, когда те меньше 10. Например, наши часы покажут...

Интересная задачка в js
Определить количество дней и часов между текущей датой и концом календарного года. Нуждаюсь в помощи, ибо как написать это не имею...

Задачка из книжки
Всем привет! Вот задачка из книжки: В первое поле вводим штат, жмем кнопку, во втором поле программа должна вывести год вступления в...

НЕ простая задачка
Добрый день! Решаем с ребенком задачу из олимпиады по математике. В целом задача легкая и решили быстро, но появилась идея...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему

Редактор формул (кликните на картинку в правом углу, чтобы закрыть)
Опции темы

Новые блоги и статьи
Микросервис с нуля на Go с Kafka
stackoverflow 12.02.2025
Когда я впервые столкнулся с необходимостью разделить монолитное приложение на микросервисы, передо мной встал вопрос выбора правильных технологий и подходов. После долгих экспериментов с различными. . .
Микросервис с нуля на C# с RabbitMQ
stackoverflow 12.02.2025
Переход от монолитной архитектуры к микросервисной - это не просто модное веяние, а закономерный этап эволюции программных систем. В отличие от монолита, где все компоненты тесно связаны между собой. . .
Docker для начинающих
stackoverflow 12.02.2025
В современном мире разработки программного обеспечения все чаще возникает необходимость быстро и надежно разворачивать приложения в различных средах. Разработчики постоянно сталкиваются с проблемой. . .
Создание бота для Телеграм на C#
stackoverflow 12.02.2025
В современном мире корпоративных коммуникаций Telegram-боты становятся незаменимым средством автоматизации бизнес-процессов и взаимодействия с сотрудниками. Как создать такого бота, который сможет. . .
Операторы сравнения (== и ===) в JavaScript
hw_wired 12.02.2025
JavaScript предоставляет два основных оператора сравнения - оператор нестрогого равенства (==) и оператор строгого равенства (===). На первый взгляд они могут показаться очень похожими, но их. . .
Определение адреса, откуда репозиторий Git был клонирован
hw_wired 12.02.2025
Система контроля версий Git хранит всю информацию о репозитории в специальной директории . git, включая данные об удаленных источниках. Эта информация необходима для синхронизации изменений между. . .
Объединение нескольких коммитов Git в один
hw_wired 12.02.2025
Представьте, что вы работаете над новой функциональностью и создали десяток небольших коммитов: исправление опечатки, форматирование кода, добавление комментариев, реализация основной логики. Каждый. . .
Как добавить локальную ветку в удалённый репозиторий Git
hw_wired 12.02.2025
Локальная ветка в Git - это изолированная линия разработки, существующая только на вашем компьютере. Представьте себе дерево с множеством веток - каждая ветка может расти в своем направлении, не. . .
Статическое отражение в C++
stackoverflow 12.02.2025
Статическое отражение представляет собой мощный механизм, позволяющий программам анализировать и манипулировать своей собственной структурой во время компиляции. Эта возможность открывает. . .
C++ в 21 веке - Бьярне Страуструп
stackoverflow 12.02.2025
В современном мире разработки программного обеспечения C++ продолжает оставаться одним из ключевых языков программирования, несмотря на свой солидный возраст - более 45 лет с момента создания. За это. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru