Ajax功能,直播?

时间:2011-06-15 15:43:36

标签: ajax jquery

我的侧栏中有一个小方框,上面有ajax。我有2个ajax函数:一个添加项目到列表,第二个删除它们,如果用户点击删除按钮。我的html是一个简单的无序列表,如下所示:

<ul id="listaruta" class="lista">
      <li>Item</li>
      <li>Item</li>
</ul>

每当我调用这两个函数中的任何一个时,它们都会用更新的函数替换ul列表(在插入或删除后从数据库中选择项目)。它们工作正常,直到我想在将项目插入列表后立即删除。

我的ajax插入功能(另一个非常相似):

var valor=$("#alcrearuta").attr('class');
$("#alcrearuta").click(function(){
    $.ajax({
        type: "GET",
        url: "../ajax/ruta.php",
        data: "url=" + valor,
        dataType: 'html',
        success: function(data) {
            $("#listaruta").html(data);
        }
    });        
});

我的ruta.php文件为我提供了另一个ul列表,其结构与原始列表相同,只是更新了项目。

据我所知,由于我通过我的ajax函数更新ul,另一个函数不知道列表已更新,它只“记住”旧列表,所以它什么都不做。如果我刷新页面,它将删除没有问题。我猜这可以通过使用live()来解决?但我不知道......

编辑:好的,所以现在我可以让我的ajax调用工作,除了我更新后立即删除,我传递给ruta.php文件的值(这个变量将帮助我找到该字段我需要从数据库中删除)将被设置为'undefined'给我一个类似的查询:从poi中选择id,其中url ='undefined'

同样,如果我重新加载,它将起作用。我对ajax函数所做的更改是:

    $("#alcrearuta").live('click',function(){
     $.ajax({
                   ....
        });
     });

1 个答案:

答案 0 :(得分:2)

问题是您在请求开头保存属性的值,您应该将其保存在click事件中:

$("#alcrearuta").click(function(){
    var valor=$(this).attr('class');
    $.ajax({
        type: "GET",
        url: "../ajax/ruta.php",
        data: "url=" + valor,
        dataType: 'html',
        success: function(data) {
            $("#listaruta").html(data);
        }
    });        
});

希望有所帮助。