0

以前のヘルプ (http://stackoverflow.com/questions/12224717/cant-execute-jquery-post-or-ajax-after-initial-run) のおかげで、クリック イベントの再バインドが正常に機能するようになりました。ただし、ダイアログ定義を再バインドできないようです。ここで他の回答を読むと、答えは「デリゲート」を使用することにあるようですが、私はそれを理解できないようです。ダイアログで更新されたコードは次のとおりです。

$('[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

ありがとうございました。

4

1 に答える 1

0

この SO の質問は大いに役立ちました: AJAX によって書き換えられた後にダイアログを再バインドするにはどうすればよいですか?

上記の私の質問のために、私はちょうど作成しました:

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

そして、htmlを再作成するたびにそれを呼び出しました

于 2012-09-07T04:36:24.680 に答える