Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Маленькая функция (https://javascript.ru/forum/misc/60243-malenkaya-funkciya.html)

майрбек95 18.12.2015 21:15

Маленькая функция
 
Доброго времени суток! Опять прошу вас о помощи.
Есть неопределенное число:

<span id="nummj">23</span>

И есть неопределенное количество ссылок:

<a href="" class="linkj">ссылка</a>
<a href="" class="linkj">ссылка</a>
<a href="" class="linkj">ссылка</a>
<a href="" class="linkj">ссылка</a>


Хочу реализовать такое, чтобы при нажатии на одну из ссылок число 23 превратилось в 24 если нажать на другую в 25 а если нажать на одну из ссылок на которую нажимал число стало на -1 т.е. 24.

Чтобы вы поняли суть объясню для чего это мне:

Есть товары а на них кнопка добавить в желании, выводится ссылка желании со количеством желаний. Думаю понятно.

Deff 18.12.2015 21:59

1. Ссылка (<a href="" class="linkj">ссылка</a>) должна быть кликабельна ? (Т.е после клика страница обновляеться) Ибо если кликабельно нун запоминать ссылки в Storage
2. Инфа должна сохраняться на иной странице сайта?
3. Есть ли признак(параметр) нового входа на сайт, ибо при повторном входе при сохранении в Storage юзер будет нагружен старыми данными

майрбек95 18.12.2015 22:52

Инфо должна сохранятся на той же странице без обновления страницы, кликнул на ссылку к счетчику прибавилось +1 кликнул на другую еще раз +1 кликнул повторно -1 и опять тоже само по кругу: клик +1 клик -1 клик +1 и т.д. Сейчас дело предстоит так: Например понажал по товаром добавить товары в желании, после обновления счетчик показывает сколько всего на странице желаний товаров - это все уже реализовано. В конечном итоге нужно обновлять страницу чтобы число товаров желании обновилось а мне нужно чтобы оно визуально обновлялось без перезагрузки страницы. Например: На страницы добавил три товара в желании к счетчику прибавилось +3, убрал 1 получил -1 итого +2 и все дальше уже система сама запоминает.

Deff 18.12.2015 23:10

майрбек95,
1. При клике на ссылку - что должно происходить (не учитывая счетчик), помимо него
Лучше ссылку на демо страницу
2. Если чел перешел на иную страницу сайта - там число товаров обнулилось ?
==============
Про желания по счётчику - всё понятно, непонятно про сохраняемость оного, чел вышел с сайта, зашел снова через пять секунд - число товаров сохранилось или нет ?
Поэтому я и спросил, есть какой параметр идентифицирующий текущего юзера(хотя бы по IP и время первого входа) ? Можно его получить скриптом

goodbigbeer 18.12.2015 23:26

<html>
<head>
<style>
</style>
</head>



<body>

<span id="num">50</span>

<a href=""> link </a>
<a href=""> link </a>
<a href=""> link </a>
<a href=""> link </a>
<a href=""> link </a>
<a href=""> link </a>
<a href=""> link </a>



<script>

f = function(event){
      event.preventDefault()
      if(this.clicked) {this.clicked = false; num.innerHTML = (+num.innerHTML) - 1; return} 
      this.clicked = true; num.innerHTML = (+num.innerHTML) + 1
}


;[].forEach.call(document.querySelectorAll("a"),function(a){
      a.onclick = f
})


</script>

</body>
</html>

Deff 18.12.2015 23:29

goodbigbeer,
Ну заказ выполнен, но он кастрирован изначально, посколь выход со страницы - убъёт сохраненное. Смысл корзины, если она не сохраняется при оплате. Либо Актуально лишь для одностраничного сайта(Пока не видел полнофункциональных магазинов с одной страницей)

goodbigbeer 18.12.2015 23:31

Deff,
Что просили, то и получили

майрбек95 19.12.2015 12:07

Спасибо всем!
goodbigbeer ваше решение помогло)

майрбек95 19.12.2015 12:15

goodbigbeer - вот только на странице есть и другие ссылки поэтому нужно чтобы работали только ссылки с классами <a href="" class="linkj">ссылка</a>

goodbigbeer 19.12.2015 13:10

<html>
<head>
<style>
</style>
</head>
 
 
 
<body>
 
<span id="num">50</span>
 
<a href="" class="linkj"> link </a>
<a href="" class="foo"> link </a>
<a href="" class="linkj"> link </a>
<a href="" class="foo"> link </a>
<a href="" class="linkj"> link </a>
<a href="" class="foo"> link </a>

 
 
 
<script>
 
f = function(event){
      event.preventDefault()
      if(this.clicked) {this.clicked = false; num.innerHTML = (+num.innerHTML) - 1; return}
      this.clicked = true; num.innerHTML = (+num.innerHTML) + 1
}
 
 
;[].forEach.call(document.querySelectorAll("a[class = 'linkj']"),function(a){
      a.onclick = f
})
 
 
</script>
 
</body>
</html>


Часовой пояс GMT +3, время: 11:07.