只获得使用this.class分配的最后一个类

时间:2011-10-09 16:48:25

标签: javascript jquery prototype-oriented

请允许任何人看到此代码中的错误, 我有.man和.girl的2个图像,每个图像包含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();
});

1 个答案:

答案 0 :(得分:0)

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