Jqueryfunktion auf nachgeladene Elemente

Kalito

Erfahrenes Mitglied
Hallo,

ich nutze das Framework cakephp.

In meinen View binde ich ein Element multiple_elements und übergebe Ihr html-Schnipsel

create.ctp
Code:
echo $this->element('libraries/multiple_elements', array(
        'dataarray' => array(
            'model' => 'user',
            'site' => 'forms/users_create', 
            'data'=>array(
              'content' => array()
         ))
    ));

users_create.ctp
Code:
<div class="onlyElement" id="user_0">
<?php
    echo $this->Form->input('salutation_0', array(
        'type'=> 'radio',
        'legend'    =>  false,
        'lable' => false,
        'options'   =>  array('Herr' => 'Herr','Frau' => 'Frau')
    ));
   
    echo $this->Form->input('firstname_0', array('label'=>false,'placeholder' => 'Vorname'));
    echo $this->Form->input('lastname_0', array('label'=>false, 'placeholder' => 'Nachname'));
    echo $this->Form->input('email_0', array('label'=>false, 'placeholder' => 'E-Mailadresse'));?>
    <div class="minus" id="minus_user_0">Löschen</div>  
</div>

multiple_elements.ctp
Code:
<?php
  $template = $dataarray['data'];
  unset($template['content']);
?>

<script type="text/javascript">    
   
    if(typeof templates == "undefined"){
        var templates = {};
    }
   
    templates.<?php echo $dataarray['model']; ?> =  (<?php echo json_encode(array('a' => $this->element($dataarray['site'],array('dataarray'=>$template)))); ?>).a;
</script>
<?php 
  echo $this->Html->script('individual/multiple_elements');
?>
<div id="<?php echo $dataarray['model']; ?>">
  <?php 
  if($dataarray['data']['content']){
   echo $this->element($dataarray['site'],array('dataarray'=>$dataarray['data']));
  }
  ?>
</div>
<div class="plus" id="<?php echo $dataarray['model']; ?>">Hinzufügen</div>

multiple_elements.js
Code:
$(document).ready(function(){
 
// Code zum Hinzufügen von Blöcken anhand des Templates  

  $('.onlyElement > div').bind('click', function(){
    console.log($(this).attr('id'));
  });
});


Nun ist es so, dass wenn ich über den Link "Hinzufügen" einen neuen Block an Formularfelder nachlade der Link "Löschen" für diesen neuen Block nicht funktioniert. Auf bereits geladene Blöcke habe ich keine Probleme. Ich habe es mit bind, on und live probiert. Doch nichts funktioniert.

Gruß, Kalito
 
Hy,

willst du damit
Code:
$('.onlyElement > div')
den Event von allen Child-DIV Elemente von ".onlyElement" bzw. "id=user_0" oder das das letzte DIV Element vom letzten Block aufrufen?

Letzteres siehe hier
http://jsfiddle.net/54e7fkpn/3/

Lg
ksk
 
Hi,

es wäre gut, wenn du den geparsten Quellcode posten könntest. Denn kaum einer hat große Lust, dein Problem mit PHP lokal nachzustellen, um das JavaScript-Problem zu lösen.

Wenn du es mit dem live-Event versucht hast, wie sah denn der Ansatz aus?

Ciao
Quaese
 

Neue Beiträge

Zurück