Javascript-форум (https://javascript.ru/forum/)
-   Элементы интерфейса (https://javascript.ru/forum/dom-window/)
-   -   Дублирование post jquery (https://javascript.ru/forum/dom-window/53334-dublirovanie-post-jquery.html)

Officeoff.ru 29.01.2015 21:44

Дублирование post jquery
 
Всем доброго времени суток. Уже поднимал похожую тему и тогда казалось, что решение найдено...
В общем столкнулся с проблемой. jquery дублирует отправку post.
$(".check").click(function(e){
		var action = "check";
		var page = "crm";
		var id = $(this).siblings("input[name='ider']").attr("value");
		var res = $(this).parents(".big_crm");
		$.post("/modules/action.php", {action:action, page:page, id:id}, function(data){
			if (data.length>0) {
				res.html(data);
			}
		});
		console.log('test');
	});


В action.php так же подключен этот скрипт. В дебагере показывает 2,3,8,14,21,29 кликов ну и т.д. То есть количество кликов растет в геометрической прогрессии. Что делать????:help:

Officeoff.ru 30.01.2015 13:22

Неужели никаких вариантов нет?!

krasovsky 30.01.2015 14:07

Ты этим сриптом загружаешь через ajax этот же скрипт, логично же да? И каждый раз навешиваешь обрабочик $(".check").click(function(e){
снова и снова, снова и снова, снова и снова, снова и снова,снова и снова, при этом каждый раз удваиваясь.

Officeoff.ru 30.01.2015 22:24

Блин, я понимаю, что пишу тупость. Но мне нужно, чтобы этот код был в action.php, точнее он работал из этого файла. Что делать то?

krasovsky 02.02.2015 08:09

Цитата:

Сообщение от Officeoff.ru
Что делать то?

Пересмотреть архитектуру.
Использовать делегирование, объявить в одном месте где нибудь и не нужно 50 раз навешивать обработчик снова
$(document).on('click',".check",function(){....})

Officeoff.ru 03.02.2015 17:09

Цитата:

Сообщение от krasovsky (Сообщение 354537)
Пересмотреть архитектуру.
Использовать делегирование, объявить в одном месте где нибудь и не нужно 50 раз навешивать обработчик снова
$(document).on('click',".check",function(){....})

Огромное спасибо. Сначала была такая идея... Но видимо не хватает знаний в этой области.


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