Avatar billede ewax Nybegynder
13. februar 2012 - 13:29 Der er 3 kommentarer og
1 løsning

Jquery ignorerer click event

Hej eksperter

Jeg har et backend system hvor jeg vil slette nogle indlæg via jquery/php.

Jeg har et id på alle tabelrækker og en knap <a class='delete' id='x'>slet</a>

Når jeg trykker på ikonet fungerer alt som det skal, jeg fjerner indholdet i <tr> og erstatter det med en bekræftelse om sletning. Her kommer problemet

Jeg har hhv. to knapper med ja/nej. Men når jeg trykker på dem (de er genereret af scriptet) sker der intet. der er ikke fejl i koderne. det fungerer fint når jeg bare sætter dem ind og ikke får .delete til at generere dem

// BEKRÆFT SLETNING
$(".delete").click(function(event) {
  var currentId = $(this).attr('id');
           
  $('#row'+currentId+'b').hide();
  $('#row'+currentId+'a').load('system.php?action=confirm_delete_video&id='+currentId);
});

Lige nu prøver jeg med en load, før lavede jeg replace med .html - dog med samme resultat

Skal en click klasse være genereret ved dokumentets start? eller er det mig der har misset noget?
Avatar billede olebole Juniormester
13. februar 2012 - 18:09 #1
<ole>

Mon ikke, du får en scriptfejl? Du kan ikke sætte event handleren, før elemnterne er læst af browseren. Derfor bør du nok pakke den ind i stil med:

$(document).ready(function() {

    // BEKRÆFT SLETNING
    $(".delete").click(function(event) {
        var currentId = $(this).attr('id');
               
        $('#row'+currentId+'b').hide();
        $('#row'+currentId+'a').load('system.php?action=confirm_delete_video&id='+currentId);
    });

});

/mvh
</bole>
Avatar billede ewax Nybegynder
13. februar 2012 - 19:08 #2
Hej ole, det har jeg på - inkluderede det bare ikke i spørgsmålet :)

Jeg tror jeg har fundet noget, http://stackoverflow.com/questions/5764908/jquery-click-function-on-a-class-added-via-addclass-does-not-respond

Kunne forestille mig jeg skal bruge .live for at fange de genererede klasser?
Avatar billede ewax Nybegynder
13. februar 2012 - 19:18 #3
Så virker det! ændrede følgende hvis nogen skulle ha brug for det

$(".delete").click(function(event) {

til

$(".delete").live("click", function() {
Avatar billede olebole Juniormester
13. februar 2012 - 23:23 #4
Ja, specielt når/hvis du opretter og indsætter nye elementer, er live en god løsning i forbindelse med jQuery  =)
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