Tengo el siguiente javascript:

$('#edit_category').on('click','#btn_save_category_name',function(){
    currently_edit.text($('#txt_edit_category').val());

    edit_category_name(currently_edit,current_category_id);
    $('#edit_category').modal('hide')
})

function edit_category_name(name, id){
    $.ajax({
        type: 'POST',
        url: '/Category/edit_team_category',
        dataType: 'json',
        data: {
            request: 'ajax',
            name: name,
            id: id
        },
        success: function (data) {

        }
    });
}

Ahora cuando intento esto me sale el siguiente error: called 'click' called on an object that does not implement interface HTMLElement.

Pero si puedo comentar que la función de salida de línea aka : edit_category_name(currently_edit,current_category_id);

todo funciona bien.

¿Alguien puede decirme por qué está sucediendo esto?

Actualización de mi script

var mode = 'team';
var currently_edit = '';
var current_team_id = 0;
var current_category_id = 0;
jQuery(document).ready(function(){
//Main click function for Team (selection of team)
$('#team_wrapper').on('click', '.panel-heading', function () {
if(mode === 'team'){
current_team_id = $(this).siblings('small').text()
title = $(this).find('.text-white').text();
var i = 100;
$('#span_search').hide();
$('#btn_new_team').fadeOut();
$('.col-lg-3').each(function(){
$('.alt').toggle('slow');
$(this).fadeOut(300,function(){
$(this).remove();
});
});
$('#team_title').text('Select Category');
$('#btn_new_category').delay(500).fadeIn();
$('#selected_team_name').text(title);
$('#selected').delay(695).fadeIn();
$('#span_search').delay(500).fadeIn();
$('#back').delay(500).fadeIn();
generate_categories();
mode = 'category';
}else{
$(this).next('div').find('a')[0].click();
}
})
$('#team_wrapper').on('click', '.btn_administrate', function(){
current_team_id = $(this).next('.team_id').text();
load_team_members(current_team_id);
});
//Modal category:
//create
$('#btn_create_category').click(function(){
add_category($('#txt_create_category').val());
$('#group-form').modal('hide');
$('#txt_create_category').val('');
})
//edit
$('#team_wrapper').on('click','.team_category_edit',function(){
current_category_id= $(this).next('input').val()
edit_mode('txt_edit_category',$(this).closest("div").prev().find("h3"));
})
$('#edit_category').on('click','#btn_save_category_name',function(){
currently_edit.text($('#txt_edit_category').val());
edit_category_name(currently_edit,current_category_id);
$('#edit_category').modal('hide')
})
});
function edit_category_name(name, id){
$.ajax({
type: 'POST',
url: '/Category/edit_team_category',
dataType: 'json',
data: {
request: 'ajax',
name: name,
id: id
},
success: function (data) {
}
});
}

en este ejemplo:

    var current_team_id = 1;
var current_category_id = 2;
  • Me gustaría ayudar, pero el fragmento de código se ve incompleta. Donde hacer el currently_edit y current_category_id variables vienen? Se basa en cómo se está usando ellos parece que están jQuery objetos, pero estás incluyendo en tu data clave para $.ajax() como si se tratara de una cadena?
  • Yo no veo nada aquí que resultaría en una llamada a un «clic» de la función.
  • Los dos current_category_id y currently_edit es de dos «global» de las variables que puedo agregar a todos los de mi código, pero es un gran script
  • Estás pasando currently_edit a la name argumento de edit_category_name, y luego se usa como name: parámetro en la llamada AJAX. Pero currently_edit es un objeto jQuery, no el nombre de cualquier cosa.
  • añadido mi javascript
  • podría dar current_category_id valor por favor ?
  • currently_edit.text(...) no tiene sentido. currently_edit es una cadena de caracteres vacía, no un objeto jQuery. Y usted nunca volver a aplicarlo.
  • Debe ser var currently_edit = {}; currently_edit.text = $('#txt_edit_category').val()
  • cierto, pero esto no es lo que está causando el problema
  • Si su página no es tirar un error en la currently_edit.texto (…), entonces este debe ser un objeto jQuery conjunto en alguna otra parte del código, de lo contrario esto sería, de hecho, tirar un error. Dado que éste es un objeto jQuery que no sólo puede pasar en la llamada ajax directamente.

2 Comentarios

  1. 5

    ¿Cuál es el valor de currently_edit? Estoy asumiendo que este es un objeto jQuery no es un valor de texto. Pruebe el siguiente lugar.

    edit_category_name(currently_edit.text(),current_category_id);

    Actualización

    Como Barmar mencionado, currently_edit.texto(…) no es válido basado en lo que han compartido. tal vez lo que quería hacer era:

    currently_edit = $('#txt_edit_category').val();
    • he añadido un poco de mi script (la más relevante
    • Trabajó ¡gracias!
  2. 1

    Tratar de cambiar esta línea currently_edit.text($('#txt_edit_category').val());

    con esto : currently_edit = $('#txt_edit_category').val();

    • sigue el mismo error ?

Dejar respuesta

Please enter your comment!
Please enter your name here