我已将所有代码粘贴到JSFIDDLE
我的系统应该能够做的是创建一个随机ID的房子,并设置房子里居民的最大容量。然后,您可以创建一些人并将其拖到房子上。当2个人被拖到房子的顶部时,房子将显示弹跳效果并且将出现婴儿。
我现在的问题是,我似乎无法弄清楚如何定位我家的随机ID。所以现在如果你创造了不止一个房子,但只将两个人搬进其中一个房子,所有的房子都会“反弹”,因为我的目标是.House类:
if(this.aPeople.length == 2)
{
// TODO: Create a new Person
setTimeout(function(){
$('.House').effect('bounce');
}, 0, function(){
} );
(From line 212)
尝试在JSFIDDLE的结果中创建一个房子,然后点击它。在这里,您可以选择删除房屋。我将点击功能定位的方式如下:
var iDivHouseId = $(this).attr('id');
$('#WindowDisplayHouseInfo').data('current-elem-id', iDivHouseId);
(on line 33 and 34)
在某些时候,我也希望if(this.aPeople.length == 2)包括必须是男性和女性来生孩子。
我刚刚得到的性别:
var sPersonGender = $("#gender input[type='radio']:checked").val();
我真的希望你可以帮我解决一些问题,或者至少指出我正确的方向。通过查看相同的代码并且没有长时间的进展,我感到有些沮丧。随意玩JSFIDDLE ..
答案 0 :(得分:2)
我建议不要使用id。检查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');
仅反弹此对象。
答案 1 :(得分:1)
var self = this;
中添加一个变量,然后查询将是$("#"+self.getId())...
here is an example 注释行194,219,212
修改强>
另外,我在$('#BtnCreateHouse').click(function()...
中看到,当您使用".House"
时,您会将事件附加到oHouse
,您应该将房屋特定事件附加到房屋,而不是所有房屋。再一次,解决方案是使用"#"+oHouse.getId()
或"#"+iRandomId
here is an example 注意第29,31,51行
答案 2 :(得分:0)
使用array
来保存所有id
,并通过索引引用它们,或者只是不使用随机的(使用#1,#2)并创建{{1}并使用它来让用户看到“id”。
或者您可以使用事件处理程序.data("id", math.floor(math.random) * 999999999)
或其他内容来获取它。如果这样做,请确保使用全局变量。
也
房子会显示弹跳效果,并且会出现一个婴儿
ROFL。