карта вставляется в ячейку справа, если это ячейка пустая, от той карты, которую перетащили. Если ячейка занята, то будет вставляться под ней, затем слева или сверху. по наличию свободных мест. Но это я опустил, т.к. там всё одно и тоже везде.
Вправо я её вставляю с задержкой вот так:
setTimeout(function(){appendCard.call(self, '[data-id='+(self.data('id')+1)+']')}, 2000);
на данном этапе сама вставка работает правильно, но теперь:
alert($('[data-id='+($(this).data('id')+1)+'] .ssComp').data('user')); // возвращает undefined.
у этой карты (ssComp), есть ещё другие дата атрибуты помимо юзера и ко всем не достучаться.
как будто он не видет в ней карту (ssComp). Хотя если смотреть через firebug, то видно что элемент ssComp там точно находиться.
Например если просто сейчас просто обратиться к ячейке по data-id то всё Ок:
alert($('[data-id='+($(this).data('id')+1)+']').data('id'));
Но именно карты он не видит.
И ещё раз подчеркну, что если писать вставку без таймаута:
appendCard.call(self, '[data-id='+(self.data('id')+1)+']');
То:
alert($('[data-id='+($(this).data('id')+1)+'] .ssComp').data('user'));
работает корректно.
Что-то этот setTimeout явно делает не понятные мне вещи....