2012-09-05 84 views
0

感謝以前的幫助(http://stackoverflow.com/questions/12224717/cant-execute-jquery-post-or-ajax-after-initial-run),重新綁定點擊事件現在工作正常。但是,我似乎無法重新綁定對話框定義。從這裏的其他答案閱讀,似乎答案在於使用「委託」,但我似乎無法弄清楚。以下是對話框的更新代碼:重新綁定jQuery對話框/模式

$('[id^="del"]').live('click', function(){ 
    var valname = $(this).attr('id').split('del_'); 
    $.post("delthis.php", {id: ""+valname[1]+""}, function(data) { 
      $("#dynamic_section").html(data); 
    }); 
    return false; 
}); 

$('[id^="thismodal"]').dialog({ 
    autoOpen: false, 
    show: 'blind', 
    hide: 'explode', 
    width: '760', 
    resizable: false, 
    modal: true 
}); 

// Dialog Link 
$('[id^="mlink"]').live('click', function(e) { 
    e.preventDefault(); 
    var valname = $(this).attr('id'); 
    var sname = valname.split("mlink_"); 
    var modal = "#thismodal" + sname[1]; 
    $(modal).dialog('open'); 
    //return false; 
}); 

// html 
// loop 
<div> 
<p> 
    <a href='#' id='del_<?php echo $row['id']; ?>'>Delete <?php echo $row['id']; ?></a><br /> 
    <a href='#' id='mlink_<?php echo $row['id']; ?>'>Show Modal <?php echo $row['id']; ?></a> 
    <div id='thismodal<?php echo $row['id']; ?>'> 
    This is the modal showing element # <?php echo $row['id']; ?> 
    </div> 
</p> 
</div> 
// end loop 

謝謝。

回答

0

這太問題幫助很大:How do I rebind the dialog after it is being rewritten by AJAX?

所以我的問題上面,我剛剛創建:

var initModal = function() { 
    $('[id^="thismodal"]').dialog({ 
     autoOpen: false, 
     show: 'blind', 
     hide: 'explode', 
     width: '760', 
     resizable: false, 
     modal: true 
    }); 
}; 

,並把它稱爲每次我重新填充HTML時間