Javascript-форум (https://javascript.ru/forum/)
-   Элементы интерфейса (https://javascript.ru/forum/dom-window/)
-   -   Работа с navbar. active class link (https://javascript.ru/forum/dom-window/75262-rabota-s-navbar-active-class-link.html)

madeas 18.09.2018 09:27

о, составил =) может пригодится кому

let copy = Array.from(document.querySelectorAll('.copy'));
  copy.forEach(function(teco) {
    teco.onclick = function() {
    let text = teco;
      text.select();
      document.execCommand('copy');
    }
  });


upd. странно только, в песочнице работает, а на сайте нет

Dilettante_Pro 18.09.2018 10:58

Работает и на сайте
<input type="text" class="copy" value="Text 1">
<input type="text" class="copy" value="Text 2">
<script>
let copy = Array.from(document.querySelectorAll('.copy'));
  copy.forEach(function(teco) {
    teco.onclick = function() {
      this.select();
      document.execCommand('copy');
    }
  });
</script>



Может, не хватает
document.designMode = "on";

здесь и в песочнице оно, очевидно, включено
Хотя нет...
alert(document.designMode);

Тогда непонятно
Цитата:

Когда HTML документ переключен в режим редактирования (document.designMode), для него будет доступен метод execCommand, который предоставляет команды для работы с контентом в редактируемой области.
execCommand

Malleys 18.09.2018 12:04

Для этих задач вам не нужно что-то перебирать в массиве, как это сделано в примерах выше (и как это делает умный jQuery)...

Вот код решающий обе задачи без сторонних зависимостей
document.addEventListener("click", function(event) {
	if(event.target.matches(".nav-link")) {
		var active = document.querySelector(".nav-link.active");
		active && active.classList.remove("active");
		event.target.classList.add("active");
	}

	if(event.target.matches(".copy")) {
		event.target.select();
		document.execCommand("copy");
	}
});

рони 18.09.2018 12:40

Malleys,
строка 3, а если ещё нет active?

Malleys 18.09.2018 12:52

То его и не будет! В первом посте указано, что оно есть. Однако же можно проверить, найден ли он!

рони 18.09.2018 12:58

Цитата:

Сообщение от Malleys
Однако же можно проверить, найден ли он!

:yes:

j0hnik 18.09.2018 16:09

Цитата:

Сообщение от Dilettante_Pro
let copy = Array.from(document.querySelectorAll('.copy'));
  copy.forEach(function(teco) {

Array.from(document.querySelectorAll('.copy'), function(teco) {

Dilettante_Pro 18.09.2018 17:13

j0hnik,
Это я по складАм, чтобы было понятно...


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