Pergunta

Esta é a minha primeira pergunta no StackOverflow. Eu só me pergunto por que meu código getjson não funciona com o jQuery 1.4.2, funcionou sem problemas com o jQuery 1.3.2

Então aqui está o meu código

$(document).ready(function(){
    $('td.hps_ajax a').click(function() {
        id = this.id.replace(/.*hps_ajax/,'');
        if(confirm('Anda yakin mau menghapus record ini?'))
            $.getJSON('../admin/media_admin/ajaxHapus/'+id, remove_row);
        return false;   
    }); 
})

function remove_row(data) {
    if(data.sukses == '1') {
        $('td.hps_ajax a#hps_ajax'+data.id).closest('tr').fadeOut('slow',function() {
            $(this).remove();
        });
    } else {
        alert('Gagal menghapus File.');
    }
}

O link getjson é um link de aplicativo CodeIgniter. Alguém sabe por que isso não funciona mais?

Foi útil?

Solução

A causa mais provável se o seu JSON não for completamente válido, agora é verificado no jQuery 1.4+

Dos documentos:

O jQuery 1.3 e usou anteriormente a avaliação do JavaScript para avaliar o JSON de entrada. O JQuery 1.4 usa o analisador JSON nativo, se disponível. Ele também valida o JSON recebido por validade, portanto, o JSON malformado (por exemplo {foo: "bar"}) será rejeitado pelo jQuery em jQuery.getjson e ao especificar "JSON" como o tipo de dados de uma solicitação AJAX.

Use algo como JSONLINT Para validar/consertar seu JSON, ele deve começar a funcionar uma vez válido. Pegue a resposta de '../admin/media_admin/ajaxHapus/'+id e verifique no Jsonlint, você também pode vê -lo com Firebug o que é útil.

Outras dicas

Getjson no jQuery 1.4, não fogo. Aqui está um exemplo para resolver este problema:

//begin ( in jquery 1.3.2)
$.getJSON("/url",{id: 'xyz'}, function(json){
     //alert('');
}




// change to ( in jquery 1.4.1)

$.ajax({url: "/url",
  dataType: "text",    // notice: not type : JSON
  success: function(text) {
    json = eval("(" + text + ")"); 

    // do something with JSON
  }
});
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top