2011-10-09 44 views
1

请任何人都可以看到这个代码有什么问题, 我有2个类图像与.man和.girl其中包含10个图像在每个。 下一页我有2个div的#manCount和#girlCount显示总图像数量(每个10个)只得到最后一个班与这个类分配

当我将一个图像移动到#drop时,它从#manCount减少1个数字。因此,总共10张图片的类名是.man,当最后一张图片被移动到#drop时,我会弹出一个对所有图片进行处理的图片。

现在我也想处理.girl类图像,但是当我有两个classess初始化它只能使用.girl类。

function Dragger(c){ 
this.classname = c; 

} 
Dragger.prototype.Init = function(){ 
    var classM = this.classname; 
    var manCount = parseInt($("#"+classM+"Count").text()); 
    $("."+classM).draggable(); 
     $("#drop").droppable({ 
      drop: function() { 
      if(manCount <= 0){ 
       alert("There are no more pictures left. " + classM); 
       return false; 
      } 
      manCount -= 1; 
      $("#"+classM+"Count").text(manCount); 
       } 
     }); 
}; 

var man = new Dragger("man"); 
man.Init(); 

上面的代码中运行得很好,但是当我用来初始化一个新的对象

var man = new Dragger("man"); 
    man.Init(); 
    var girl = new Dragger("girl"); 
    girl.Init(); 

它总是挑女孩对象,我哪里做错了什么帮助?

它总是返回我的女性对象拖动。 显示的屏幕截图:http://screensnapr.com/v/SrsyGz.png

这里是问题:http://screensnapr.com/v/hxrZYa.png

感谢

编辑:

好吧,我已经通过添加鼠标悬停事件修复了这个问题,我不知道这是多么完美因为我很新,但它按预期工作

$(".man").mouseover(function(){ 
    var man = new Dragger("man"); 
    man.Init(); 
}); 
$(".girl").mouseover(function(){ 
    var girl = new Dragger("girl"); 
    girl.Init(); 
}); 
+0

请在句子开头加上'I'和字母以提高可读性。 –

+0

对不起固定一些,接下来要小心。 – user969068

回答

0

M这是因为你在Init函数中调用$('#drop').droppable(),所以它在同一元素(#drop)上多次启动。

+0

感谢您的输入,我不确定发生了什么,因为我是jquery的新人,我想问题是我同时启动两个类,所以它只挑选最后一个,所以它总是减少最后一个对象的值。这里屏幕发生了什么http://screensnapr.com/v/hxrZYa.png – user969068

+0

你应该把逻辑放在drop回调中,而不是为了避免范围问题。 – David

+0

谢谢我会检查,我实际上找到了一个解决方案,只有当鼠标悬停时初始化对象,你可以请上面看到并告诉我,如果它很好,我对这个概念很新。再次感谢。 – user969068