http://jsfiddle.net/MaxPRafferty/z9VFA/
Это работает правильно для меня в вышеприведенной скрипке. HTML настроен как:
<div class="body">
<div class="content">
<input type="button" class="process_record" />
</div>
</div>
Я предполагаю, что вы устанавливаете обработчик несколько раз, возможно, в другом случае щелчка. Из ваших комментариев вы можете снова выполнить привязку из тега скрипта, который вы вводите с другой страницы, когда вы его загружаете. Вероятно, вы решите это, переместив теги сценария во внешний файл на другой странице, а затем, когда вы приступите к инъекции, убедитесь, что загружаете тег тела, а не голову или скрипты.
решение
Код, чтобы ваши события отвязать и перепривязывают сами по щелчку, чтобы убедиться, что есть только один обработчик на каждый:
http://jsfiddle.net/MaxPRafferty/B5UPB/
var clickAction = function(){
alert("clicked");
$(".body .content").unbind("click");
setClick($(".body .content"),clickAction);
}
var setClick = function(target,action){
target.on("click", ".process_record",action)
}
setClick($(".body .content"),clickAction);
иметь в виду, что это будут синхронизироваться ALL события от $(".body .content")
, поэтому, если вы хотите только выгрузить указанное событие, измените строку разворота на $(".body .content").unbind("click",clickAction);
Что добавляется в ваш '$ .post'? Вероятно, причиной этого. – tymeJV
, скорее всего, вы привязываете его снова каждый раз, когда вы его нажимаете, поэтому каждый последующий щелчок приводит к появлению дополнительного клик-события за клик. –
Кажется, что содержимое, загружаемое через $ .post, также имеет кнопку с тем же классом. Я хочу выполнить одно и то же действие с помощью этой кнопки, поэтому я использую метод .on. – TPSstar