Как в JcanvaScript остановить в нужный момент перетягивание
Привет!
Народ кто пользуется JcanvaScript, если например, point.x<0(картинка начинает выходить за приделы канваса при перетягивании этой же картинки по канвасу), нужно остановить перетягивание,как это сделать? jc('#myimg').id('myimg').draggable({ object: 'self', drag: function(){ point=jc('#myimg').id('myimg').position(); document.getElementById('info').innerHTML=point.x; if(point.x<0){ //this.draggable('stop'); //return; //jc.pause(); } else{ //jc.start('firstCanvas',true); } } }); Если jc.pause(); //перетягивание останавливается,но потом нельзя снова перетягивать эту картинку this.draggable('stop');//если так то перетягивание не прекращается Другие варианты тоже не работают. |
Цитата:
$("#el").draggable({ drag:function(event, ui){ if(ui.position.left>0 && ui.position.left < leftMax && ui.position.top>0 && ui.position.top < topMax){ ui.position.left = x; ui.position.top = y; } }}); |
Deff Вы имеете виду использовать jQuery?
В самой JcanvaScript нельзя останивть перетягивание в нужный момент? |
Можно ли вообще объединить две эти библиотеки jQuery и JcanvasScript( и нужно ли это для пятнашек с перетягиванием)?
например так (другие варианты тоже не проходят) Код:
//JcanvasScript |
Цитата:
return false;? |
Цитата:
jc('...').id('..).draggable({ drag: function(){ point=jc('#im').id('im').position(); if(point.x<0){ return false; } } }); не работает ... |
С имитируйте mouseUp для канваса.
тогда скрипт поведёт себя так как будто пользователь отпустил мышь. Думаю это самый безопасный для вас вариант. вообще библиотека спроектирована из рук вон плохо.Dragable это не компонент и тем более не плагин, это функция инциализирующая переменные, при этом сами обработчики участвующие в перетаскивании, находятся в общей централизованной куче (монструозном методе canvas.frame). Логика в целом очень размазанной получилась. посмотрел пару минут только, краем глаза, завтра по подробнее погляжу на это чудо :) Если что нарою, я свистну :) Имитируйте событие mouseUp пока, вероятно этого будет достаточно. функция dispatchEvent вам в помощь. |
Часовой пояс GMT +3, время: 19:31. |