Вероятно, вы можете решить первую проблему, установив перетаскиваемый элемент, не позволяющий контейнеру кнопки загрузки быть дескриптором, используя параметр cancel
. Так что если ваш HTML-код выглядит примерно так:
<div class="drag">
<p>whatever</p>
<div class="upload" ></div>
</div>
Тогда ваши сценарии инициализации должны выглядеть примерно так:
var dragger = $(".drag").draggable({ cancel: ".upload" });
var uploader = new YAHOO.widget.Uploader( "upload", "assets/buttonSprite.jpg" );
Что касается вашей второй проблемы, я не совсем уверен ... извините (хотя вполне возможно, что вышеизложенное может исправить это тоже, если происходит какое-то странное событие глотания).