【问题标题】:Why when I use the method click () , the result is repeated?为什么当我使用方法 click () 时,结果是重复的?
【发布时间】:2015-07-09 05:42:36
【问题描述】:

首先,我不得不说,当我将动态行添加到动态表时,就会发生这种情况。

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"}

两次...

如果我添加两行,然后按下按钮,打印三个..

有什么问题?

【问题讨论】:

  • 在代码中的某处,您一次又一次地绑定同一个点击处理程序。 Hack fix 是 $("#btn_enviar_formulario_id").off('click').click(function(){,但您确实应该找到再次调用函数的问题根源
  • 这解决了我的问题!谢谢 。但你说问题出在哪里?
  • 是的,当您不期望(或不需要)时,您正在调用相同的函数。可能在添加行方法中

标签: jquery object button methods click


【解决方案1】:

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

您可以使用以下方法取消绑定现有的:

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

但由于不需要重复调​​用该函数,因此您可能需要将其从再次调用的地方删除

【讨论】:

  • 谢谢! ,反正很奇怪,因为在这个模块中,我不会再次调用该函数。但我会再次检查。
猜你喜欢
  • 1970-01-01
  • 2015-02-19
  • 2015-10-10
  • 2011-05-08
  • 2015-11-11
  • 1970-01-01
  • 2017-07-22
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多