Показать сообщение отдельно
  #13 (permalink)  
Старый 06.07.2018, 09:53
Профессор
Отправить личное сообщение для Nexus Посмотреть профиль Найти все сообщения от Nexus
 
Регистрация: 04.12.2012
Сообщений: 3,726

flyte, найдите общий для всех кнопок селектор и в цикле кликните по каждой, как-то так:
[].forEach.call(document.querySelectorAll('.button'),function(node){
    node.dispatchEvent(new Event('click'));
});

Если на клиенте сделано так, что нельзя одновременно отправить на сервер несколько запросов, то так просто не выйдет.
Пример:
<button type="button" class="remove">Кнопка 1</button>
<button type="button" class="remove">Кнопка 2</button>

<button type="button" class="control">Кликнуть по обеим</button>
<script>
	(function(){
		let inProcess=false;

		const buttons=[].slice.call(document.querySelectorAll('.remove'));
		buttons.forEach(function(node){
			node.addEventListener('click',function(){
				alert(this.textContent+' нажата');
				if(inProcess)
					return;

				inProcess=true;
				setTimeout(function(that){
					that.parentNode.removeChild(that);

					alert(that.textContent+' удалена');
					inProcess=false;
				},1000,this);
			});
		});
	})();

	document.querySelector('.control').addEventListener('click',function(){
		[].forEach.call(document.querySelectorAll('.remove'),function(node){
				node.dispatchEvent(new Event('click'));
		});
	});
</script>
Ответить с цитированием