0

AJAXを使用してDBにレコードを挿入するスクリプトを作成しています。

これが完了すると、データはそのようにポストバックされます...

 Print "<li>"; 
         Print "<span class='cost'>".$bill . "</span> ";
         Print "<h4 class='bill-name'>".$$billname . "</h4> ";
         Print "<p class='bill-details'><span class='bill-category'>".$billdescription . "</span> "; 
         Print "<span class='bill-description'>". $billcolour . "</span></p>"; 
     echo "<a href='#' class='edit-bill'>edit</a> 

         <form class='bill-upd'>
         <input type='hidden' value='".$rand."' name='rand2' id='rand2'>
            <input type='hidden' value='". $billname."' name='billid' id='billid''>
            Total <input type='text' id='total' name='total' /><br />
            Bill name<input type='text' id='bill-name' name='bill-name' /><br />
           bill descriptiion <input type='text' id='bill-description' name='bill-description' /><br />
            bill colour<input type='text' id='bill-colour' name='bill-colour' />
        <input type='button' value='submit' onClick='updateBill();' />
        </form>   

         <form class='delete-bill'>
             <input type='hidden' value='".$info['rand']."' name='rand2' id='rand2'>

        <input type='button' value='delete' class='delete' />
        </form>   

         "; 
         echo "</li>";

現在ページにあるフォームは、同じマークアップで、その下のフォームを表示する「edit」に割り当てられたslideToggle()などのjQuery関数を使用します。しかし、私の問題は、このjQueryが返されたデータに対して機能しないことです。私はグーグルを試しましたが、それを理解できませんでした。誰かアイデアがありますか?


編集機能のjQuery..。

// Show bill edit information 

$('.edit-bill').click(function(){
    $(this).next('.bill-upd').slideToggle();
    return false;
                           });

AJAX

function insertBill()
{
    $.post('insert_bill.php', $('#insertbill').serialize(), 
        function(data) {
        $('#bills').append(data);
    });
};
4

2 に答える 2

2

またはあなたはから変更することができます

$('.edit-bill').click(function(){
    $(this).next('.bill-upd').slideToggle();
    return false;
});

$('.edit-bill').on("click",".edit-bill",function(){
    $(this).next('.bill-upd').slideToggle();
    return false;
});
于 2012-04-23T20:53:26.907 に答える
1

これを変える

$('.edit-bill').click(function(){
    $(this).next('.bill-upd').slideToggle();
    return false;
});

$(document).on("click",".edit-bill",function(){
    $(this).next('.bill-upd').slideToggle();
    return false;
});

http://api.jquery.com/on/

on現在の要素と将来の要素(ajaxなどを介してロードされます)で機能します

onはjQuery1.7以降から利用できます。以前のバージョンのjQueryを使用している場合は、ライブを検討してください

于 2012-04-23T20:08:19.217 に答える