2013-09-25 45 views
5

我已經貼了我所有的代碼JSFIDDLE如何定位我的隨機生成的ID

我的系統應該能夠做的就是創建一個隨機ID的房子,並設置在房子的居民的最大容量。然後你可以創建一些人並將他們拖到房子裏。當兩個人被拖到房子的頂部時,房子將顯示反彈效果並且會出現一個嬰兒。

我現在的問題是,我似乎無法弄清楚如何針對我家的隨機ID。

if(this.aPeople.length == 2) 
    { 
     // TODO: Create a new Person 
     setTimeout(function(){ 
      $('.House').effect('bounce'); 
     }, 0, function(){ 

     }); 
(From line 212) 

嘗試創建一個:如果你創建一個以上的房子,但只能招兩個人進入其中的一個,所有的房子都將「反彈」因爲我瞄準.House類所以,現在在JSFIDDLE的結果中單擊並點擊它。在這裏你可以選擇刪除房子。我定位我的點擊功能的方式有這樣的:

var iDivHouseId = $(this).attr('id'); 
$('#WindowDisplayHouseInfo').data('current-elem-id', iDivHouseId); 
(on line 33 and 34) 

在某些時候,我也想了,如果(this.aPeople.length == 2)包括:它必須是男性和女性進行一個寶寶。

性別我只是得到:

var sPersonGender = $("#gender input[type='radio']:checked").val(); 

我真的希望你能幫助我一些吧,或者至少指向我在正確的方向。我看到相同的代碼,但沒有進展很久,我感到有些沮喪。隨意擺弄的的jsfiddle ..

+0

$('#'+ iRandomId)而不是$('。House')? – Christophe

回答

2

我建議不要使用身份證這一點。檢查http://jsfiddle.net/hLGsH/10/。 創建一個新的房子是這樣的:

var objHouse = $('<div id="' + iRandomId + '" class="House" title="' + sStreetName + '" />'); 
objHouse.appendTo('.HouseContainer'); 

然後DOM對象存儲在類的實例:

oHouse.setObj(objHouse); 
... 
function House() 
{ 
    var obj; 
    this.setObj = function(o) { 
    obj = o; 
    } 
... 

,並使用obj.effect('bounce');反彈僅此對象。

0

要麼使用一個array容納所有id s,而通過索引引用它們,或者只是不使用一個隨機(使用#1,#2),並創建一個.data("id", math.floor(math.random) * 999999999)並使用它爲用戶看到一個「ID」。

或者你可以通過你的事件處理程序$(".house").handler(function(){ babyIn = $(this).attr("id")})或其他東西來獲得它。如果你這樣做,一定要使用全局變量。

房子將呈現反彈效應和嬰兒會出現

ROFL。

1

似乎還有其他的錯誤,由於某種原因,這個人被拖入的房子似乎並不是它實際上被拖入的房子。但要回答你的問題,並ATLEAST給你一個想法,做什麼,你可以廣告在衆議院類變量var self = this;再查詢就會$("#"+self.getId())...

here is an example 音符線194,219,212

編輯 另外,我看到在$('#BtnCreateHouse').click(function()...中,當您使用oHouse時,您將活動附加到".House",您應該將房子特定事件附加到房子而不是所有房屋。再次,解決的辦法是使用"#"+oHouse.getId()"#"+iRandomId

here is an example 音符線29,31,51