Ru-Board.club
← Вернуться в раздел «Web-программирование»

» вопросы по javascript

Автор: unreal666
Дата сообщения: 02.10.2014 02:49
кажется жужит

Код: <!DOCTYPE>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Документ без названия</title>

<script src="http://code.jquery.com/jquery-latest.js"></script>
<script type="text/javascript">

$(document).ready(function() {
var inputPrice = $('input[name^="price_"]')[0];
inputPrice.value = 0;
$('.option').each(function(){
this.checked = false;
});

function podschiot() {
var total = 0;
$('.option:checked').each(function() {
total += parseFloat($(this).val());
$(this).parent().css('background', 'gold');
});
$('.option:not(:checked)').each(function() {
$(this).parent().css('background', '#fff');
});
$('#total').html(total + '&nbsp;&euro;');
inputPrice.value = total;
};
$('label').bind ('click', podschiot);
});/*end ready*/

</script>

</head>

<body>
<div style="width:1000px; margin:25px auto;">
<label><input class="option" type="checkbox" value="24" />&nbsp;Фасад глухой 1</label><br />
<label><input class="option" type="checkbox" value="28" />&nbsp;Фасад глухой 2</label><br />
<label><input class="option" type="checkbox" value="37" />&nbsp;Фасад глухой 3</label><br />
<label><input class="option" type="checkbox" value="76" />&nbsp;Фасад глухой 4</label><br />
<label><input class="option" type="checkbox" value="23" />&nbsp;Фасад глухой 5</label><br />
<div id="total">0&nbsp;&euro;</div>
<input type="hidden" name="price_{@id}" value="" />
</div>
</body>
</html>
Автор: afrika
Дата сообщения: 02.10.2014 03:25
unreal666 Спасибо большое !!! Круто. Сейчас буду внедрять
Автор: afrika
Дата сообщения: 03.10.2014 16:57
Блин теперь все поменялось.

Оказывается надо цифровое значение результата подставлять вместо 123 в select

<xsl:variable name="newprice" select="123" />
<a href="{/shop/url}cart/?add={@id}&amp;newprice={$newprice}" alt="Добавить заказ" title="Добавить заказ" >


Попробовал сделать по аналогии
с <input type="hidden" name="price_{@id}" value="" />
Но не получается так как на select="" ругается движок. Ему надо чтоб там цифиры были.

Как тут быть?

Автор: unreal666
Дата сообщения: 03.10.2014 17:32
ни фига не понял.
Лучше укажи какая должна сформироваться строка для отправки,т.е. то что должен быть в POST-запросе.
И откуда должны браться данные для запроса.

ЗЫ.
И код указывай не серверный шаблон, а сгенеренный html.
Автор: afrika
Дата сообщения: 04.10.2014 00:55
Вся то и беда что нужно сюда как то вписать результат
<xsl:variable name="newprice" select="результат" />


А все остальное готово
Автор: unreal666
Дата сообщения: 04.10.2014 01:45
afrika
xsl:variable - это на стороне сервера у тебя в шаблонах, из которых будет генериться html.
JS тут будет ни причем.
А, судя по коду той страницы, которую ты давал, код html-такой там такой

Код: <a href="/catalog/cart/?add=344&amp;newprice=123" alt="Добавить заказ" title="Добавить заказ">
<div id="butcart">
<span style="color: #fff; float: left; margin: 2px 5px 0 5px;">Заказать</span>
<img src="/images/cartw.png" />
</div>
</a>
<input type="hidden" name="newprice" value="" />
Автор: afrika
Дата сообщения: 05.10.2014 02:47
unreal666

У меня как раз загвоздка в том, что нужно результат подсчета скрипта вставить в шаблон движка.

То есть есть такая строчка кода в XSL шаблоне


Код: <xsl:variable name="newprice" select="результат" />
Автор: unreal666
Дата сообщения: 05.10.2014 06:09

Цитата:
Можно ли взять условное слово и вписать его в код, например "datprice", а скрипт чтоб его подменял на цифру?

вполне. Можно поотм сделать выборку по селектору для этого кодового слова и заменить его.

ЗЫ.
Кстати, а чего input у тебя стал с именем newprice? Был же просто price. Это точно не ошибка? Или пофигу?

Код: <input type="hidden" name="newprice" value="" />
Автор: afrika
Дата сообщения: 05.10.2014 15:13
Пока не учитывается я тут просто щас все пробую.
Автор: unreal666
Дата сообщения: 05.10.2014 16:54
что-то код у тебя постоянно изменяется и уже непонятно на что ориентироваться.
короче, алгоритм типа такого:
- сделай селекторами выборку по чему-либо уникальному в твоем теге <a>
- замени/добавь/или_что_там_будет в полученном объекте-элементе в свойстве href "ненужную" часть на нужную.
Автор: afrika
Дата сообщения: 05.10.2014 18:39
Не могу доделать..


Код: $(document).ready(function() {
$('xsl[select=datprice]');
document.datprice = datprice.replace({total});
Автор: unreal666
Дата сообщения: 05.10.2014 19:02
каким боком xsl относится к клиентской части?
Ты же "парсишь" дерево документа в браузере, а не шаблон на сервере.
Открой исходный код страницы, которую сам же указал, и посмотри.

И это что за...

Код: $(document).ready(function() {
$('xsl[select=datprice]');
document.datprice = datprice.replace({total});
Автор: afrika
Дата сообщения: 05.10.2014 22:57
unreal666

Где можно посмотреть хелп толковый по селекторы, выборку, замену? А то что в инете находил видимо для уже профессионалов
Автор: unreal666
Дата сообщения: 06.10.2014 03:53
по-русски (возможно не все) - http://jquery.page2page.ru/
по-англ. (офф. API) - http://api.jquery.com/
Автор: afrika
Дата сообщения: 07.10.2014 04:43
Решил поменять тактику и попробовать просто подставить значение в ссылку.

<a href="{/shop/url}cart/?add={@id}&amp;newprice={'datprice'}" alt="Добавить заказ" title="Добавить выбранные услуги" >

В title написал "Добавить выбранные услуги" чтоб выборку сделать

А в ссылку написал слово datprice

Хочу его (datprice) поменять на результат при помощи скрипта .

Попробовал начало написал
$('[title="Добавить выбранные услуги"]')

а вот подменить слово не знаю как?
Автор: unreal666
Дата сообщения: 07.10.2014 07:45
А с тем input'ом у тебя что?
Обратно появился, если да, то с каким именем?
Это чтобы целиком тот js написать.

Автор: afrika
Дата сообщения: 07.10.2014 08:45
Это уже просто пока висит не понял пока что и зачем он нужен..

Просто в тех поддержке сказали работать с этим:


Цитата:
Понял. Тогда в вашем случае лучше без переменной сразу получать ссылку http://sdmco.ru/catalog/cart/?add=344 и уже в скрипте дописывать &newprice=123

В xsl:variable никак не записать значение.


Добавлено:
Но они чегото тож не учли что ссылка http://sdmco.ru/catalog/cart/?add=344 должна генриться индивидуально у товара и подставлять там лучше просто цифры в конце

Добавлено:
<a href="{/shop/url}cart/?add={@id}&amp;newprice={'datprice'}"
http://sdmco.ru/catalog/cart/?add=344&newprice=datprice
Автор: unreal666
Дата сообщения: 07.10.2014 10:57
afrika
Забыл спросить. В коде JS, который ты делаешь, в этом шаблоне тоже можно юзать эти "переменные": {@id}, {/shop/url} и т.п. ?
И еще. На странице есть блок "<div class="blocksoput">", в который все это включено. Имя его класса "blocksoput" написано обычно или тоже через "переменные"?
Автор: afrika
Дата сообщения: 07.10.2014 11:04
вот и я не могу понять пока нет точной работающей схемы. Можно былоб спецом просто ссылку создать на обычном хтмл и посмотреть сначала меняет скрипт или нет эту часть кода. А потом подставить уже эту абракадабру.

Но я не догнал сам скрипт как сделать чтоб в ссылке менял.

Автор: unreal666
Дата сообщения: 07.10.2014 11:11
afrika
у меня вопрос бы про то, что шаблонизатор этой CMS меняет эти "переменные" везде, в том числе и в JS-коде ? Это просто, чтобы в нескольких местах не менять одно и тоже, а сгенерить напрямую в JS.
Автор: afrika
Дата сообщения: 07.10.2014 13:36
нет не меняет по моему
Автор: unreal666
Дата сообщения: 07.10.2014 14:49
тогда что-то типа

Код: <script type="text/javascript">

$(document).ready(function() {
var
inputPrice = $('input[name^="price_"]')[0], // находим нужный input и заносим его в переменную
link = $('a[href*="&newprice="]')[0], // находим нужную ссылку и заносим ее в переменную
initHref = link.href.replace(/(^.*newprice=).*/, '$1'); // заносим в переменную кусок ссылки до "newprice=" включительно

inputPrice.value = 0;
link.href = initHref + '0';

$('.option').each(function(){
this.checked = false;
});
function podschiot() {
var total = 0;
$('.option:checked').each(function() {
total += parseFloat($(this).val());
$(this).parent().css('border-right', '6px solid #fcaf17');
});
$('.option:not(:checked)').each(function() {
$(this).parent().css('border-right', '6px solid #f1f1f1');
});
$('#total').html('<span>Итого:&nbsp;' + total + '&nbsp;руб.</span>');
link.href = link.href.replace(/(newprice=).*/, '$1' + '0');
inputPrice.value = total;
link.href = initHref + total;
};
$('label').bind ('click', podschiot);
});

</script>
Автор: afrika
Дата сообщения: 07.10.2014 15:09
unreal666
Большое спасибо! Эта часть заработала!! теперь осталось еще движковую доделать!!

С меня причитается. Если чего могу по дизайну чего нибудь подсобить )
Автор: vs6262
Дата сообщения: 11.10.2014 18:42
может кто знает как с помощью JS задизэблить и раздизэблить активность на странице ?

нужно кроссбраузерное решение.
Автор: unreal666
Дата сообщения: 11.10.2014 19:21
а что у тебя считается "активностью"?
и по каким событиям нужно задизэбливать/раздизэбливать эту активность?
Автор: vs6262
Дата сообщения: 11.10.2014 19:38
т.е. чтобы на странице ничего нельзя было бы сделать
Автор: unreal666
Дата сообщения: 11.10.2014 19:51
vs6262
установи "прослушивальшики" на всякие мышинные/клавовые события. Перехватывай их и отменяй. Но один хрен можно просто вырубить JS и будет плевать на эти финтифлюшки.
Автор: vs6262
Дата сообщения: 11.10.2014 19:57
я это http://jsfiddle.net/SQdP8/1/ имел ввиду

но не могу из JS вызвать это: $("#overlay").show();
Автор: unreal666
Дата сообщения: 11.10.2014 20:10
так вызывается же.
Автор: vs6262
Дата сообщения: 11.10.2014 20:41
все получилось

Страницы: 12345678910111213141516171819202122

Предыдущая тема: jQuery: Перемещение якоря на верх страницы


Форум Ru-Board.club — поднят 15-09-2016 числа. Цель - сохранить наследие старого Ru-Board, истории становления российского интернета. Сделано для людей.