Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

dataset

[Resolvido] Atrelar ação do onchange

Recommended Posts

Prezados, bom dia;

 

A seguinte tela se chama: turmas.asp

 

Veja a imagem:

function.jpg

 

Ao clicar no + eu executo essa função:

function fDetalhes(vVal){
       $('#fDet'+vVal).load('/detalhesturmas.asp?codTur='+vVal, function() {
           $('#fDet'+vVal).css('background-color','#E8E8E8');
           $('#fDet'+vVal).toggle('slow'); 
       });
}

 

A função carrega os dados na parte cinza. Pra cada faixa cinza tem duas comboBox, conforme imagem.

 

No onchange da primeira combo tem essa chamada: fGetProfTurma(this, 10) que roda essa função:

function fGetProfTurma(vVal, vTurm){
   $('#MateriaChamada'+vVal.value).load('/profmat.asp',{codEnt:vVal.value, codTur:vTurm})
}

 

Só que essa função está no turmas.asp e o ID MateriaChamada10 está no detalhesturmas.asp e como de costume... não sei como atrelar pra que seja executado.

 

Eu preciso resolver esse caso e além disso, aprender como se atrela.

 

Quem puder me ajudar ficarei grato.

 

Att;

Rhael Nunes

Compartilhar este post


Link para o post
Compartilhar em outros sites

Alguém consegue me ajudar ?

 

Preciso resolver essa pendência... não posso subir os arquivos pro servidor sem resolver isso.

 

Abraços.

Compartilhar este post


Link para o post
Compartilhar em outros sites

para atrelar você deve usar a função .live();

 

como você tentou fazer?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Pois é...

Não sei usar o .load() junto com o .live().

 

No seu exemplo tem usando o .live() com .click()

http://wbruno.com.br/2011/03/18/metodo-live-jquery/

 

A função fGetProfTurma já está sendo executada no onchange da ComboBox.

 

Não sei usar o .load() junto com o .live()

 

Como não sei fazer... nem consigo montar um exemplo pra você me corrigir. Simplesmente não achei um site falando sobre o .live() junto com o .load()

 

:cry:

Me ajuda.

Compartilhar este post


Link para o post
Compartilhar em outros sites

não existe live() junto com load().

 

o live é para atrelar eventos. No teu caso do change, seria:

elemento.live('change', function(){
 //..
});

Compartilhar este post


Link para o post
Compartilhar em outros sites

William...

 

O alert é executado, mas o .load() nem aparece no console do Firebug.

 

Fiz de duas maneiras:

Com a function:

function fGetProfTurma(vVal, vTurm){
   window.alert('asdf');
   jQuery('#MateriaChamada'+vVal.value).live('change', function(){
       jQuery('#MateriaChamada'+vVal.value).load('/paratodos/consultas/profmat.asp',{codEnt:vVal.value, codTur:vTurm})
   })
}

 

No ready:

jQuery(document).ready(function () {
   jQuery('#MateriaChamada'+vVal.value).live('change', function(){
       jQuery('#MateriaChamada'+vVal.value).load('/paratodos/consultas/profmat.asp',{codEnt:vVal.value, codTur:vTurm})
   })
});

 

Sem sucesso... você sabe o que ta havendo ? Era pra pelo menos chamar o .load() ne ?

 

Isso que fico indignado, não roda o .load()

 

A sintaxe do .live() deve estar errada... me da uma ajuda.

 

Valeu

Compartilhar este post


Link para o post
Compartilhar em outros sites

essa concatenação q está errada.

 

dispare pela class do elemento.

E use a segunda forma, no document.ready.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não posso, pois as duas combos possuem a mesma class.

 

jQuery('#ProfessorChamada'+vVal.value).live('change', function(){
   window.alert('asdf');
   jQuery('#MateriaChamada'+vVal.value).load('/paratodos/consultas/profmat.asp',{codEnt:vVal.value, codTur:vTurm})
})

 

O window.alert foi executado. Somente o .load() nao ta rodando.

 

Estou tentando chamar pelo ID, veja a imagem. Cada ID possui um nome e um número. Por isso a concatenação.

 

Eu acho que o problema está no .load()

 

Vou usar no ready... mas me ajuda com o .load()

 

Ficarei muito grato por essa ajuda.

 

Valeu.

Compartilhar este post


Link para o post
Compartilhar em outros sites

pode disparar pela class sim. Faça isso.

 

E ai para saber onde abrir o load(), você navega no DOM com $(this), .parent() e .find()

Compartilhar este post


Link para o post
Compartilhar em outros sites

dispare pela class. E não se esquece de colocar dentro do document.ready.

Compartilhar este post


Link para o post
Compartilhar em outros sites

AEEEEEE William....

 

Deu certo cara...

 

live.jpg

 

Veja no change da primeira combo.... os dados são carregados na segunda combo. Eu tenho que passar dois parâmetros pro select.

O value da primeira combo, e o código da turma em questão.

 

Daí fiz assim:

jQuery('.camposelect').live('change', function(){
    jQuery('#MateriaChamada'+$(this).attr('id')).load('/paratodos/consultas/profmat.asp',{codEnt:$(this).val(), codTur:$(this).attr('id')})
})

 

você acha que dava pra ficar mais limpo esse monte de concatenação ai ?

 

Valeu meu grande amigo... te juro que ja tava xingando essa bosta. Mas é assim mesmo... a gente vai aprendendo e incomodando menos os amigos...rsrs

 

Te agradeço pela ajuda amigo... sem você a coisa não teria ido.

 

Abraços.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.