2017-07-11 8 views
0

Überprüfung habe ich eine Checkliste mit Kontrollkästchen, die wie folgt erzeugt werden:einen dynamisch generierte Eingang ID

@foreach($documents as $PDF) 
<input {{$PDF->problem != 0 ? "disabled" : ""}}type="checkbox" 
     id="mail_{{$PDF->id}}" value="{{$PDF->id}}" 
      name="email[]" 
      > 

<input type="checkbox" 
     id="post_{{$PDF->id}}" value="{{$PDF->id}}" 
      name="post[]" 
      > 
@endforeach 

Wenn Sie auf eines dieses Kontrollkästchen klicken, sollte eine jQuery-Funktion aufgerufen werden, die den Wert verwenden das angeklickte Kontrollkästchen

Ich habe Probleme beim Aufruf der Funktion nur, wenn diese 2 generierten Kontrollkästchen angeklickt sind.

Es gibt jedoch mehr Eingänge und Kontrollkästchen auf der Seite, so dass etwas wie $(document).delegate('input', 'click', function (event) nicht in Frage kommt.

Es muss sicherlich eine einfachere Möglichkeit, dies zu tun.

Antwort

2

eine gemeinsame CSS-Klasse auf diese Elemente hinzufügen

<input class="checkbox" type="checkbox" id="post_{{$PDF->id}}" 

Dann einen Selektor verwenden sie

$(document).delegate('.checkbox:checkbox', 'click', function (event)... 

Hinweis .delegate() wird abgeschrieben Ziel in der Gunst der .on()

Ab jQuery 1.7, die .on()-Methode bietet alle Funktionen zum Anhängen von Ereignishandlern.

ändert sich also Code als

$(document).on('click', '.checkbox:checkbox', function (event)... 

Anstelle von document sollten Sie am nächsten statischen Behälter für eine bessere Leistung verwenden.

Verwandte Themen