2013-10-17 63 views
2

我有一個系統,你可以創建一個房子和一些人。當你創建了房子,然後你點擊它,一些信息就會出現。你也有機會刪除房子。當我點擊一個新的對象時忘記以前的點擊?

但是,如果您點擊新房子,系統現在會忘記以前的點擊。因此,我點擊過的兩個房屋都將被移除。

您可以在JSFIDDLE

這一切happend我的點擊函數內部測試:

var objHouse = $('#' + oHouse.id) 

    objHouse.click(function(){ 

    $('#WindowDisplayCarInfo').hide(); 
    $('#WindowDisplayPersonInfo').hide(); 
    $("#WindowDisplayHouseInfo").show(); 

    $('#ShowId').text("ID: " + this.id); 
    $('#ShowStreetName').text("Street Name: " + oHouse.StreetName); 
    $('#ShowNumber').text("Number: " + oHouse.Number); 
    $('#ShowInhabitants').empty(); 
    $('#ShowMaxInhabitants').text("Max inhabitants: " + oHouse.MaxPeople); 


    for(var i = 0; i < oHouse.aPeople.length; i++) 
    { 
    $('#ShowInhabitants').append("<br />" 
           +"<br />" + "ID: " + oHouse.aPeople[i].id 
           +"<br />" + "Name: " + oHouse.aPeople[i].Name 
           +"<br />" + "Last Name: " + oHouse.aPeople[i].Lastname 
           +"<br />" + "Age: " + oHouse.aPeople[i].Age 
           +"<br />" + "Gender: " + oHouse.aPeople[i].sGender 
           ); 
    } 

     $('.DeleteHouse').click(function() 
     { 
      $(objHouse).children().each(function(){ 
       $(this).appendTo($('#container')).css({"top":"" , "left":"", "display":"block"}); 
      }); 

      $(objHouse).remove();     
      $("#WindowDisplayHouseInfo").hide(); 
     }); 
}); 

}

(它開始在的jsfiddle線130)。

希望你能教我一兩招。 :-)

+1

我不知道什麼或怎麼做,但你設法讓'objHouse'有多個值作爲一個變量。 Console.log出來。每次你點擊刪除時,每一個被選中的盒子都將被安慰。這是沒有任何意義,我試圖擦除變量...只是得到的ID,但沒有任何作品。我認爲它是因爲你擁有'CreateHouseInLayout'函數中的所有東西 – Kierchon

+0

噢,我明白了。我試過把它記錄下來。這看起來很奇怪。我不認爲這是不好的:p – Adnaves

+0

我想出了一個解決方案 – Kierchon

回答

2

這可能不是很好的做法,但在30分鐘後,我可以想出。它只是從右上方的框中拉出ID並僅刪除所選框。 「不好的做法」可能是substr部分。爲了讓它稍微好一點,你可能想要利用indexOf()來找到ID的開始,而不僅僅是整數4,因爲ID盒子的結構會改變。

$('.DeleteHouse').click(function() 
{ 
    $(objHouse).children().each(function(){ 
     $(this).appendTo($('#container')).css({"top":"" , "left":"", "display":"block"}); 
    }); 
    var currentID = $("#ShowId").html().substr(4); 
    console.log(currentID); 
    $("#"+currentID).remove(); 
    $("#WindowDisplayHouseInfo").hide(); 
}); 

http://jsfiddle.net/t8TKc/3/

+0

哇,非常感謝你花了這麼多的時間來幫助我。但是,這可能不是最好的解決方案。但這是解決我的問題的一種方式。我會嘗試閱讀一下indexOf(),看看我能否在將來使用它。先生,非常感謝您的時間! – Adnaves