• Das Erstellen neuer Accounts wurde ausgesetzt. Bei berechtigtem Interesse bitte Kontaktaufnahme über die üblichen Wege. Beste Grüße der Admin

[FRAGE] Klick auf a abfragen

danield

New member
Hallo,

in dem folgenden Code möchte ich auf einen bestimmten Link klicken, und je nach Link per JS etwas ausführen:
(jquery 1.10.2)

Klicke ich auf den Link < delete >, so erscheint in deR Console die Fehlermeldung:
remove_id = remove_id.replace("remove-","");

HTML:
<div class="albums">
   <a href="#" id="remove-<?php echo $album->id ?>" class="delete-album">delete</a>
   <a href="#" id="sort-<?php echo $album->id ?>" class="sort-album">sort</a>
</div>


Den folgenden JS Code verwende ich im Moment:

HTML:
$(document).ready(function(){

   $('.albums').click('a.delete-album', function (event) {
      event.preventDefault();
      var $album = $(this);
      var remove_id = $(this).attr("id");
      remove_id = remove_id.replace("remove-","");

      console.log(remove_id); 
   });

   $('.albums').click('a.sort-album', function (event) {
      event.preventDefault();
      var $album = $(this);
      var sort_id = $(this).attr("id");
      sort_id = sort_id.replace("sort-","");

      console.log(sort_id); 
   });

});

Was mache ich falsch?

Danke.
 
Zuletzt bearbeitet:
Erzeugst du mit $('.albums').click() nicht ein überlagerndes Event, weil das div beide a's umspannt?
Laut .click() | jQuery API Documentation ist bei Zwei-Parameter-Schreibweise der erste Parameter von .click() nicht das Ziel-Element sondern eventData.
Das müsste m.E. so lauten: $('.delete-album').click(function (event) {...
sowie $('.sort-album').click(function (event) {...

Und var $album mutet seltsam an. In JS benutzt man eigentlich kein $. Wenn du das in PHP so machst musst du aufpassen, dass das nicht als PHP Variable interpoliert wird.
 
In JS benutzt man eigentlich kein $.
Es ist zwar keine geschriebene Regel, aber wenn man ein JQuery-Objekt in einer Variable speichert, markiert man diese mit einem $. In sofern ist das schon richtig.


@danield: Das ist aber nicht die komplette Fehlermeldung, oder? Normalerweise sagt dir JS noch irgendwas in Form von "blabla is undefined" oder "blabla is not a function" oder was auch immer...
 
Zuletzt bearbeitet:
Es ist zwar keine geschriebene Regel, aber wenn man ein JQuery-Objekt in einer Variable speichert, markiert man diese mit einem $. In sofern ist das schon richtig.
Ah ok, wusste ich nicht. Ich vermeide immer alle $, damit meine Serverscripte da keine Interpolation versuchen, wenn ich vergesse sie zu maskieren :)
 
Zurück
Oben