Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/user-interface/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jquery 为什么当我使用click()方法时,结果会重复?_Jquery_Object_Button_Methods_Click - Fatal编程技术网

Jquery 为什么当我使用click()方法时,结果会重复?

Jquery 为什么当我使用click()方法时,结果会重复?,jquery,object,button,methods,click,Jquery,Object,Button,Methods,Click,首先,我必须说,当我向动态表中添加动态行时,就会发生这种情况 在datosGuardados方法中,我有一个我想为Chrome的调试控制台显示的对象 datosGuardados: function(problema){ var self = this; var objTareas = new Object(); objTareas.tareas = aTareas; objTareas.descripcionProblema = problema; objTareas.idTareaS

首先,我必须说,当我向动态表中添加动态行时,就会发生这种情况

在datosGuardados方法中,我有一个我想为Chrome的调试控制台显示的对象

datosGuardados: function(problema){

var self  = this;

var objTareas = new Object();

objTareas.tareas = aTareas;
objTareas.descripcionProblema = problema;
objTareas.idTareaSeleccionada = $('#nombre_trabajador_id').val();
objTareas.nombreTrabajador = $('#nombre_trabajador_id option:selected').text();

console.info(objTareas);
return objTareas;    },
这是包含按钮的方法AccionBotonEnviar:

AccionBotonEnviar: function(data){

var self = this;      
$("#btn_enviar_formulario_id").click(function(){

    self.datosGuardados();

}); },
如果我在表格中添加一行,并且不使用按钮打印,它会显示:

Object {tareas: Array[2], descripcionProblema: "aaa", idTareaSeleccionada: "2", nombreTrabajador: "Trabajador 2"}
但使用按钮打印:

Object {tareas: Array[2], descripcionProblema: "aaa", idTareaSeleccionada: "2", nombreTrabajador: "Trabajador 2"}
Object {tareas: Array[2], descripcionProblema: "aaa", idTareaSeleccionada: "2", nombreTrabajador: "Trabajador 2"}
两次

如果我加两行,然后按按钮,打印三行


问题出在哪里?

在代码中的某个地方,您再次调用了绑定新单击处理程序的函数。可能是在添加新行的方法中

可以使用以下方法解除现有的绑定:

$("#btn_enviar_formulario_id").off('click').click(function(){
      self.datosGuardados();
});

但是,由于不需要重复调用该函数,因此可能需要将其从代码中再次调用的位置删除

,从而一次又一次地绑定同一个单击处理程序。黑客补丁是$btn_enviar_formulario_id。关闭“点击”。点击功能{但是你真的应该找到问题的根源,在那里函数被再次调用解决了我的问题!谢谢。但是你说这个问题是其他问题吗?是的,你在不期望或不需要调用同一个函数的时候调用了。可能在add row methodThank!中,无论如何都很奇怪,因为在这个模块中,我没有调用再次检查函数。但我将再次检查。