Вопросы по JavaScript

12.79K
.
kantry
Hey guys! Finally I'm gonna change status!?
lazyproger, На вот лучше код покритикуй, в свете данного топика решил нативный яваскрипт изучить
Code (+/-)
.
brainhub
kantry, дома буду, закину замечания
.
# kantry (15.10.2017 / 15:53)
Hat-Trik, Если просто то как то так
<textarea id="click"></textarea>
<p><a style="color:black" href="#" onClick="document.getElementById('click').value = 'user1'">user1</a>
<p><a style="color:blac
ещё раз всем привет, вернёмся вот к этому, работа пошла дальше и теперь делается журнал ответов

значит кликаем мы по user1, в texterea у нас попадает user1 и мы пишем комментарий, но при этом теперь ещё требуется, что бы в скрытое поле hidden вводилось ID поста, на который мы отвечаем, как реализовать?
.
brainhub
Возьми мой ответ, чуть позже дополню. До компа не могу добраться
.
Let Mortal Kombat begin
Есть у меня блок с уведомлением, по нажатию на который этот блок закрывается и далее идёт переход к другому блоку id которого берется из адреса в истории браузера. Всё это реализовано при помощи js и работает замечательно, но!
Если мы отправляемся на страницу, там происходит действие и тут же идёт перенаправление через header('Location...'), то в историю такая страница не попадает и, соответственно я не могу взять данные из адреса.
Как можно решить данную проблему, есть идеи?
---
Пробовал без использования истории браузера в hash адреса передавать что-то типа #post=123,а потом парить, но что-то не вышло у меня. (Думаю это решение правильнее)
---
Можно конечно в адресе при переадресации прописать &post=123, но хотелось бы это сделать через hash.
.
Кадило крутится, лавэха мутится
seg0ro, Ну как-то так наверное можно.
Есть хэш "#test=1&test2=22"
var hash_array = location.hash.substring(1).split('&');
var test = [];
hash_array.map(function (param) {
    test[param.split('=')[0]] = param.split('=')[1]
    return test;
});
// В переменной test будет это:
// [test: "1", test2: "22"]

З.Ы. Возможно код можно получше написать))
.
Блиносвёрт ?
history.pushState может вызвать где-нить
.
seg0ro
Let Mortal Kombat begin
Короч, проще. У меня было header('Location: ...'), а я сделал header('Refresh: 0 URL=...') - страница записывается в историю, я из истории беру ID сообщения, профит!
если вдруг нужен быдлокод, то вот как я сделал.
function idChange(elem, jump) {
  var hash;  
  if (location.hash){
    hash = location.hash.split("#")[1];
  }
  if (elem)
    hash = elem;
  
  if (hash) {
    var wrapper = document.getElementsByClassName("wrapper");
    if (wrapper[0].id == hash)
      wrapper[0].id = "main";
    else
      wrapper[0].id = hash;
    history.replaceState({}, document.title, window.location.href.split("#")[0]);
  }
  
  if (jump) {
    const url = new URL(document.referrer);
    document.getElementById("p" + url.searchParams.get("post")).scrollIntoView({block: "start", inline: "nearest", behavior: "smooth"});
  }
}
.
Есть такой код подсчёта количества чекбоксов
var count = 0;
$(function() {
  count = $('input[class=count-checked-1]:checked').length;
  displayCount();

  $('input[class=count-checked-1]').bind('click', function(e, a) {
    if (this.checked) {
      count += a ? -1 : 1;
    } else {
      count += a ? 1 : -1;
    }
    displayCount();
  });
});

function displayCount() {
  $('#count').text(count);
}

Вывод
<div>
  Выбрано: <span id="count"></span>
</div>

Считает кол-во чекбоксов отмеченных с классом count-checked-1
У меня есть несколько рядов чекбоксов с классами count-checked-1  (-2 -3 -4 и т.д.)
Как для каждого ряда чекбоксов сделать подсчёт и вывод? А так же добавить кнопку "очистить". Чтобы очищались чекбоксы только этого ряда.
.
Кадило крутится, лавэха мутится
Сгруппируй чекбоксы по разным дивам с разными классами например и дальше уже по селектору можешь выбирать только чекбоксы в нужной строке.
Всего: 820