Как прекратить приращение переменной при падении в том же дропсоте

0

У меня есть 7 капель и 7 перетаскиваемых элементов. Я могу использовать один и тот же элемент для всех 7 droppots, или я могу использовать все перетаскиваемые элементы на той же droppot. Я имею переменную contor с приростом при падении, но, если я перетаскиваю все элементы на той же droppot, эта переменная достигает 7 и что-то происходит. Мне нужно, чтобы увеличить эту переменную только один раз за каплей, даже если я сброшу и измените src 7 раз в той же капельке. Мой код выглядит так:

jsFiddle link

drop: function( event, ui )
{
    dropTarget = event.target.id;
    indexDrops = dropTarget.charAt(dropTarget.length-1);
    $("#dropspot" + indexDrops).css("opacity", 0);
    $("#dropspot" + indexDrops).children("img").prop('src', dragTarget.src); 
    interval = setInterval(showDrop, 1);
    $(ObjectsToHide[indexDrops]).css('visibility', 'visible');    

    contor++;

    if(contor == 7){
        resetBtn.disabled = false;
        $(dragObjects).draggable("disable");
        updateBubble(2);
    };
}
Теги:

1 ответ

1
Лучший ответ

РЕШЕНИЕ

Вам действительно нужно прочитать jquery API... так много неправильных вещей в вашем коде...

1 - Не выбирать группы с идентификатором:

ObjectsToHide.push(document.getElementById("toChange" + i));

вместо этого используйте класс для выбора нескольких элементов.

ObjectsToHide = $('.class');

2 - Не сохранять индекс:

indexDrags = dragObjects.indexOf(event.currentTarget);

вместо этого сохраните сам элемент в var, поэтому вам не придется его снова выбирать.

dragsEl = event.currentTarget;

3 - Не выполняйте повторяющиеся запросы:

$("#dropspot" + indexDrops).css("opacity", 0);
$("#dropspot" + indexDrops).children("img").prop('src', dragTarget.src);

вместо этого сохраните запрос в var, затем повторно используйте его или просто соедините.

var q = $("#dropspot" + indexDrops)
.css("opacity", 0).children("img")
.prop('src', dragTarget.src);

4 - Если вам нужен только один таймер работы, используйте setTimeout. Не используйте setInterval, если вы не хотите, чтобы операция выполнялась повторно.

5 - Вы должны ссылаться на свои библиотеки при создании скрипта. В вашем случае: jquery и jqueryUI.

6 - Вам нужна абсолютная ссылка на ваши изображения, иначе они не будут загружены:

src="images/clouds.svg" 

вместо

src="http://your.site/images/clouds.svg" 
  • 0
    Вы правы, я начинающий :(, но проблема, с которой я столкнулся, не решена ... Мне нужно, чтобы contor увеличивал один раз на каждую точку, даже если точка все еще активна, и я удаляю другой элемент
  • 0
    Во всяком случае, я узнал кое-что из твоего объяснения
Показать ещё 7 комментариев

Ещё вопросы

Сообщество Overcoder
Наверх
Меню