Avatar billede Sinox Nybegynder
18. april 2013 - 12:58 Der er 9 kommentarer og
1 løsning

jquery, function virker ikke

Hej.

Jeg har dette script, som henter lidt data fra XML, danner en tabel med radio buttons.

Nu vil jeg lave en funktion, når man klikker på en radio button, skal ske et eller andet.

Men min function virker ikke. Jeg får ingen alert frem - hvorfor?

$("button[name=findplugs]").click(function(){
   
    var device1 = $("select[name=device1]").val();
    var device2 = $("select[name=device2]").val();
    var cabletype = $("select[name=type]").val();

    $.get('data.asp?device1=' + device1 + '&device2=' + device2 + '&type=' + cabletype + '', function(d){
    //    alert('Load was performed. Device1: ' + device1 + ' Device2: ' + device2 + ' Type: ' + cabletype + '');
        var html = '<table  class="table table-hover">'       
        $('#plug1content').empty();
        $(d).find('plug').each(function(){

            var $book = $(this);
            var title = $book.attr("title");
            var description = $book.find('description').text();
            //var imageurl = $book.attr('imageurl');
            var plugid = $book.attr('plugid');

            html += '<tr>'
            //html += '<td><img class="bookImage" alt="" src="' + imageurl + '" /> </td>';
            //html += '<td><span class="loadingPic" alt="Loading" />';
            html += '<td><input type="radio" name="plug1" id="plug1" value="' + plugid + '"/></td>';
            html += '<td>' + title + '</td>';
            html += '<td> ' + plugid + '</td>' ;
            html += '</tr>';

          //  $('.loadingPic').fadeOut(1400);

        });
            html+= '</table>'
            $('#plug1content').append($(html));
    });
   
});


$("input:radio[name=plug1]").click(function(){
      var plug1 = $("input:radio[name=plug1]").val();
        alert(plug1);
});
Avatar billede jakobdo Ekspert
18. april 2013 - 13:42 #1
Du kunne jo starte fra en ende af.

$("button[name=findplugs]").click(function(){
alert("Du har klikket på en button med name=findplugs");
});

Giver det en alert ?
Hvis ja, så langt så godt, hvis nej, så er det jo step et at løse.
Pt har du jo mange steder din kode kan fejle.
Avatar billede Sinox Nybegynder
18. april 2013 - 13:47 #2
hele min $("button[name=findplugs]").click(function(){ fungerer fint
Alert kommer frem, xml indhold bliver hentet og tabbel udskrives.

når tabbel er udskrevet og jeg vil klikke på radio med id="plug1" og vil aktivere

$("input:radio[name=plug1]").click(function(){

så sker der intet
Avatar billede olebole Juniormester
18. april 2013 - 14:12 #3
<ole>

Det er vel ikke så mærkeligt. For det første får flere elementer id="plug1", hvilket ikke giver mening. En ID skal være unik på dokumentniveau.

Dernæst kalder du med name-attributten som selector - og forventer åbenbart, det fungerer på en ID. Det sker ikke.

Sidst, men ikke mindst, eksisterer dine radio's jo ikke, når du sætter click-handleren på radio-buttons.

/mvh
</bole>
Avatar billede Sinox Nybegynder
18. april 2013 - 14:48 #4
Tak for det olebole.

Er først lige fået i gang med jQuery, derfor en anelse grøn

2 første pointer er fixet - hvad mener du så med
"Sidst, men ikke mindst, eksisterer dine radio's jo ikke, når du sætter click-handleren på radio-buttons." ?
Avatar billede olebole Juniormester
18. april 2013 - 15:25 #5
At de ikke eksisterer. Du sætter kun click-handlers på de radios, som allerede findes i dokumentet, når dette loades. Alle radios, der efterfølgende oprettes med script, sætter du ikke handlers på
Avatar billede Sinox Nybegynder
18. april 2013 - 16:21 #6
ahaa, på den måde. Hvordan gør jeg så, for at kunne sætte clicks på de radios der oprettes i scriptet?
Avatar billede olebole Juniormester
18. april 2013 - 16:47 #7
$('#plug1content').click(function(event){
    var elmSrc = event.target
    if (elmSrc.type==="radio" && elmSrc.name==="plug1") {
        // Din kode her
    }
});
Avatar billede Sinox Nybegynder
21. april 2013 - 09:28 #8
Perfekt. Tak for hjælpen. Smid et svar :)
Avatar billede olebole Juniormester
21. april 2013 - 16:45 #9
Ellers tak, jeg samler ikke point. Måske jakobdo er interesseret. Ellers lægger du selv et svar og accepterer det, så tråden lukkes  =)
Avatar billede Sinox Nybegynder
03. oktober 2014 - 11:32 #10
lukker
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester