hi again,

i have the following code below which in fact works fine. what it does
is it limits a small div to be only draggable within another fixed
sized div. e.g. you can't drag the div out of the bigger div - it
stops at its borders and acts like a "prison".

however, to me it looks like a mix of "normal" javascript and jquery
syntax.
is it, e.g. possible to to with this line:

var prison_left   = document.getElementById('main').offsetLeft;

this:

var prison_left   = $('main').offsetLeft;

at all? i have tried it but it doesn't work. the goal would be the
make the code compacter, in a good jquery way.

any help very appreciated.

$(document).ready(function(){
function checkLimits(box){
var prison_left   = document.getElementById('main').offsetLeft;
var prison_right  = prison_left +
document.getElementById('main').offsetWidth;
var prison_top    = document.getElementById('main').offsetTop;
var prison_bottom = prison_top +
document.getElementById('main').offsetHeight;
var box_left   = parseInt(box.css('left'));
var box_right  = box_left + parseInt(box.css('width'));
var box_top    = parseInt(box.css('top'));
var box_bottom = box_top + parseInt(box.css('height'));
if(box_left < prison_left){
box.css('left', prison_left);
}
if(box_top < prison_top){
box.css('top', prison_top);
}
if(box_right > prison_right){
box.css('left', prison_right - parseInt(box.css('width')));
}
if(box_bottom > prison_bottom){
box.css('top', prison_bottom - parseInt(box.css('height')));
}
}
$(function(){
$('#box').easydrag();
$('#box').ondrag(function(e){
checkLimits($('#box'));
});
});
});

Reply via email to