2012-07-30 37 views
1

代碼,用於生成動態元素:jeditable(內編輯器)不工作,用於動態生成的元素

$(".add_entry").click(function(event) { 
    id=event.target.id; 
    var parent_id=($("#"+id+"").parent().get(0).id); 
    var i=$("#"+parent_id+"_add").children().children().length; 
    i=i+1; 
    var content='<li id="'+parent_id+'_'+i+'"><div class="timelineUnit"><h4 class="click"  style="float:left;">Manager</h4><h4 style="float:right;"><span class="timelineDate click">2010 - Present</span></h4><h5 class="click" style="clear:both;">Ligula Non Lectus</h5><p class="autogrow">Lorem ipsum dolor sit amet, consectetur adipiscingVivamus sit amet ligula non lectus cursus egestas. Cras erat lorem, fringilla quis sagittis in, sagittis inNam leo tortor Nam leo tortor Vivamus.</p></div></li>'; 
    $("#"+parent_id+"_add").append(content); 
}); 

jeditable功能碼

$(function() { 
    $(".click").editable("<?php echo HTTP_URL; ?>inline/php/assign.php", { 
     indicator : "<img src='<?php echo HTTP_URL; ?>inline/img/indicator.gif'>", 
     tooltip : "Click to edit...", 
     style : "inherit", 
     submit : 'Ok', 
     cancel : 'Cancel', 
    }); 
}); 

上面的代碼爲HTML工作以及像 <span class="click" id="name2">test</span> 但不能用於動態生成的html表單jquery(上面的函數)。

回答

0

絕不是一個JavaScript的傢伙,但有時會做點修補。

但是你不需要用.live或.on編寫它,如果你在DOM中注入html的話?

0

對於動態生成的元素,還必須在生成腳本中調用可編輯腳本。

替換你的代碼,例如:

$(".add_entry").click(function(event) { 
    id=event.target.id; 
    var parent_id=($("#"+id+"").parent().get(0).id); 
    var i=$("#"+parent_id+"_add").children().children().length; 
    i=i+1; 
    var content='<li id="'+parent_id+'_'+i+'"><div class="timelineUnit"><h4 class="click"  style="float:left;">Manager</h4><h4 style="float:right;"><span class="timelineDate click">2010 - Present</span></h4><h5 class="click" style="clear:both;">Ligula Non Lectus</h5><p class="autogrow">Lorem ipsum dolor sit amet, consectetur adipiscingVivamus sit amet ligula non lectus cursus egestas. Cras erat lorem, fringilla quis sagittis in, sagittis inNam leo tortor Nam leo tortor Vivamus.</p></div></li>'; 
     $("#"+parent_id+"_add").append(content); 


     $(".click").editable("<?php echo HTTP_URL; ?>inline/php/assign.php", { 
     indicator : "<img src='<?php echo HTTP_URL; ?>inline/img/indicator.gif'>", 
     tooltip : "Click to edit...", 
     style : "inherit", 
     submit : 'Ok', 
     cancel : 'Cancel', 
     }); 



    });