4

На странице при нажатии на td меняется рамка с помощью onclick:

<td class = "bordercolor" onclick = "this.className = (this.className == 'bordercolor-new')"><a href = 'силка'></a></td>

Подскажите, как onclick можно записать в куки, чтобы после перезагрузки onclick был уже как бы нажатым.

SVE
  • 22,387
  • Ничего не понял. – Qwertiy Mar 17 '17 at 19:17
  • 1
    @Qwertiy Ну все же понятно - чтобы клетка выглядела нажатой после загрузки страницы, если оставалась нажатой во время ухода со страницы. –  Mar 17 '17 at 19:23
  • @Igor, теперь понял. Ответил. – Qwertiy Mar 17 '17 at 20:17

1 Answers1

3

https://jsfiddle.net/pvye7oxh/

В сниппете не работает из-за настроек безопасности.

~function () {
  var elem = document.getElementById("dest")
  elem.className = document.cookie.match(/\bsmth=red\b/) ? 'red' : 'blue';
  elem.addEventListener('click', function () {
    document.cookie = "smth=" + (elem.className === 'red' ? 'blue' : 'red');
  })
}()
.blue { color: blue }
.red { color: red }
<table>
  <tr>
    <td id="dest">
      Just some text
    </td>
  </tr>
</table>
Qwertiy
  • 123,725
  • а что тильда тут означает ~function () .... не встречала такого еще? – SVE Mar 17 '17 at 20:22
  • 1
    @Elena, другой вариант форсировать expression вместо declaration. Просто самовызывающуюся функцию так написал. Можно + или void или любой другой унарный оператор. – Qwertiy Mar 17 '17 at 20:23
  • понятно, спасибо – SVE Mar 17 '17 at 20:24
  • @Elena, но с плюсом плохо - он может неожиданно начать складывать :) – Qwertiy Mar 17 '17 at 20:25