Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Olá pessoal,
Tenho uma tabela, onde um dos td é um "link" para um gráfico, porém todas as linhas tem o mesmo ID porém o valor diferente, exemplo:
<td id="grafico" valorgrafico="{ID}">
Até aí tudo tranquilo, o problema que o JS só está está aceitando o clique na primeira linha, as demais linhas não funcionam, o que pode ser?
Segue o JS que estou testando:
$('#grafico').click(function(){
alert('TESTE');
alert($(this).attr('valorgrafico'));
})
E sempre retorna o valor da primeira linha.
Agora está me aparecendo o seguinte erro na console do firebug:
Empty string passed to getElementById().
Sabe o que pode ser, esse erro aparece cada vez que clico em um dos td, e não me retorna nada.
Lembrando que essa página está sendo carregada via ajax.
Depende cara, como é o resto do código ?
Onde tem getElementById() ? no código q vc postou não tem isso.
Bom acho que esse problema está relacionado com ele não conseguir carregar o script eu acho, pois se coloco o seguinte na console do browser funciona.
Segue o código que estou colocando no browser:
$('#SelectFiltrar').click(function(){
alert('teste 1223');
})
Esse código na verdade irá pegar os valores de cada item clicado.
troque:
$('.grafico').click(function(){por
$('body').on('click', '.grafico', function(){isso vai resolver o problema de estar vindo via ajax.Perfeito, funcionou....
VLW!!!
Willian,
Pode me tirar um última duvida, no meu ajax como posso atualizar uma div utilizando a função ' $('body').on ....'
Segue a sequência:
- Carrega a página;
- selecione o menu;
- Carrega os dados e eu seleciono o item;
- e após selecionar o item, tem que atualizar uma div que foi carregada após clicar no menu.
Esse é o meu código:
$('body').on('click', '#SelectFiltrar', function(){
var zbxgrupo = '';
zbxgrupo = $('#ZBXgrupo li.selected a').attr('zbx-group');
var zbxstatus = '';
zbxstatus = $('#ZBXstatus li.selected a').attr('zbx-status');
var zbxagente = '';
zbxagente = $('#ZBXagente li.selected a').attr('zbx-agente');
if ((typeof zbxgrupo != 'undefined' && zbxgrupo) || (typeof zbxstatus != 'undefined' && zbxstatus) || (typeof zbxagente != 'undefined' && zbxagente)){
$.ajax({
url: "php/ajax_view.php",
data: {tipo: 'SelectListHosts', Group: zbxgrupo, Agent: zbxstatus, Status: zbxagente},
type:'post',
success: function(data){
alert(data);
$('#Listahosts').css("display", "none");
$('#main').html(data);
}
})
}
Vc não pode duplicar ID. Troque por classes.
$('.grafico').click(function(){