2011-06-15 75 views
0

我在我的邊欄中填充了一個小框,由ajax填充。我有2個Ajax功能:一個添加項目到列表中,第二個刪除它們,如果用戶點擊刪除按鈕。我的HTML是一個簡單的無序列表,像這樣:Ajax功能,直播電話?

<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({ 
        .... 
     }); 
    }); 

回答

2

的問題是,你是在請求開始保存屬性的值,你應該將其保存在單擊事件:

$("#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); 
     } 
    });   
}); 

希望有幫助。

+0

它有所不同,它現在刪除,但它獲得了valor的一個錯誤值,它從列表中的第一個項目而不是我點擊的第一個項目獲取URL。 – 2011-06-16 07:45:55

+0

我應該使用$(this).attr('class');代替? – 2011-06-16 08:32:15

+0

是的,那是我所需要的,現在它已經獲得了適當的價值。謝謝。 – 2011-06-16 08:53:12