it-swarm.com.de

jQuery attr ('onclick')

Ich versuche, das Attribut "onclick" in jQuery zu ändern, aber es ändert sich nicht. Hier ist mein Code:

$('#stop').click(function() {
     $('next').attr('onclick','stopMoving()');
}

Ich habe ein Element mit id = "stop" und wenn der Benutzer darauf klickt, möchte ich ein onclick-Attribut eines Elements ändern, das id = "next" hat.

Wenn jemand weiß, wo die Lösung ist, helfen Sie bitte!

27
Shark

Machen Sie es auf die jQuery-Weise (und beheben Sie die Fehler):

$('#stop').click(function() {
     $('#next').click(stopMoving);
     // ^-- missing #
});  // <-- missing );

Wenn dem Element bereits ein click-Handler über das onclick-Attribut zugeordnet ist, müssen Sie ihn entfernen:

$('#next').attr('onclick', '');

Update: Wie @Drackir darauf hinweist, müssen Sie möglicherweise auch $('#next').unbind('click'); aufrufen, um andere über jQuery angehängte Click-Handler zu entfernen.

Aber das ist hier zu erraten. Wie immer: Weitere Informationen => bessere Antworten.

45
Felix Kling

Wie @Richard oben ausgeführt hat, muss der onClick ein 'C' haben. 

$('#stop').click(function() {
     $('next').attr('onClick','stopMoving()');
}
13
Tim

Der einfachste Weg ist, die .attr () - Funktion in eine Javascript-Funktion zu ändern .setAttribute ()

$('#stop').click(function() {
    $('next')[0].setAttribute('onclick','stopMoving()');
}
7
Artnik

Versuchen Sie es mit dieser Version jquery-1.10.2!

0
fgallego

Felix Kling's Weg wird funktionieren (eigentlich schlagen Sie mich bis zum Anschlag), aber ich wollte auch vorschlagen, zu verwenden

$('#next').die().live('click', stopMoving);

dies ist möglicherweise eine bessere Möglichkeit, wenn beim mehrmaligen Klicken auf das Element Probleme und ungewöhnliche Verhaltensweisen auftreten.

0
Ryan Sullivan