用jQuery改变图像

时间:2014-03-07 15:57:17

标签: javascript jquery

当我尝试在表格中保存新行时,jQuery有一点问题,当动作成功时,图像只是改变了,但这正是我的问题。

这是我的代码:

$(document).on('click','.clsBtnGuardarHost',function(){
  var i = this.name.substring(14)
  var host = $("#host"+i).val();
  if(host.trim() != "") {
    $.post("AccionesHost.html", { host:$("#host"+i).val(),
      descripcion: $("#descripcion"+i).val(),
      ip: $("#ip"+i).val(),
      cuentasCant: $("#cuentasCant"+i).val(),
      accion:"Agregar" 
    }, function(mensaje) {
      if(mensaje.indexOf(" ") != -1) {
        alert(mensaje)
        return;
      } else {
        $("#indice"+i).val(mensaje);
        $(this).attr( {'id':'btnModificarHost'+i, 'name':'btnModificarHost'+i,});
        $(this).val("");                          
        $(this).removeClass('clsBtnGuardarHost')
          .addClass('btnModificarHost');
        $("#host"+i).removeClass('NclsAnchoTotal')
          .addClass('clsAnchoTotal');
        $("#descripcion"+i).removeClass('NclsAnchoTotal')
          .addClass('clsAnchoTotal');
        $("#ip"+i).removeClass('NclsAnchoTotal')
          .addClass('clsAnchoTotal');
        $("#descripcion"+i).attr('readonly',true)
        $("#ip"+i).attr('readonly',true)
        $("#host"+i).attr('readonly',true);
        $("#cuentasCant"+i).attr('readonly',true);              
      }
    }); 
  } else {
    alert("Debe ingresar un host valido para continuar")
  }     
});

所以最后“else”中的代码有效,但它没有生效......我不知道为什么。

感谢您提前和抱歉我的英语不好。

1 个答案:

答案 0 :(得分:2)

this不再引用点击的元素。设置一个上下文变量并在AJAX的回调函数中使用它:

$(document).on('click','.clsBtnGuardarHost',function(){
    var that = $(this);
     //AJAX
    //callback
    that.attr( {'id':'btnModificarHost'+i,
                'name':'btnModificarHost'+i,
            });
    that.val("");