jQuery函数不能处理AJAX数据返回

时间:2012-04-23 19:37:18

标签: javascript jquery ajax

我有一个脚本即时写作,使用AJAX将记录插入我的数据库。

完成此操作后,数据将被回发为......

 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>";

当前页面上的表单,在同一标记中使用jQuery函数,例如slideToggle(),它被分配给“edit”,显示其下面的表单。然而,我的问题是这个jQuery对返回的数据不起作用,我试过谷歌而无法搞清楚,有什么想法吗?


jQuery for edit function ...

// 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);
    });
};

2 个答案:

答案 0 :(得分: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;
});

答案 1 :(得分: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可从jQuery 1.7+获得。如果您使用的是以前版本的jQuery,请考虑live