получать только последний класс, назначенный с помощью this.class - PullRequest
1 голос
/ 09 октября 2011

Пожалуйста, кто-нибудь может увидеть, что не так в этом коде, у меня есть 2 изображения класса с .man и .girl, которые содержат 10 изображений в каждом.затем у меня есть 2 div #manCount и #girlCount, которые отображают общее количество изображений (по 10 в каждом)

, когда я перемещаю одно изображение в #drop, оно уменьшается на 1 число по сравнению с #manCount.Таким образом, всего 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();

код выше работает просто отлично, но когда я инициализирую новый объектпомогите, где я делаю не так?

Он всегда возвращает мне женский объект при перетаскивании.Снимок экрана: 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 голосов
/ 09 октября 2011

Возможно, это потому, что вы вызываете $('#drop').droppable() в функции Init, поэтому она инициируется более одного раза для одного и того же элемента (#drop).

...