html:
<div data-role='page' id='mainPage'>
<div class="ui-grid-b" style="cursor:pointer" ><div class="ui-block-a" id="A"><div id="AA" class="ui-bar ui-bar-d" style="height:60px" class="content">
<div style="float:left;width:90px;" id="me" ><a href='#' data-role='button' style="width:70px;" >Link button</a></div>
</div></div><div class="ui-block-b" id="B"><div id="BB" class="ui-bar ui-bar-d" style="height:60px"></div></div><div class="ui-block-c"><div id="CC" class="ui-bar ui-bar-d" style="height:60px"></div></div></div>
</div>js函数:
$(function(){
$("#me").mousedown(function(e){
var p = $("#me");
var offset = p.offset();
_move=true;
_x=e.pageX-offset.left;
_y=e.pageY-offset.top;
});
$("#me").mousemove(function(e){
var x,y;
if(_move){
x=e.pageX-_x;//移动时根据鼠标位置计算控件左上角的绝对位置
y=e.pageY-_y;
//$("#me").css("position","absolute");
$("#me").css({top:y,left:x});
}
}).mouseup(function(){
_move=false;
});
})
通过上边的js函数拖动id="me"的div,结果连最外层的div(即id=mainPage)一起拖动了,如何做到只拖动 id="me"的div呢?
(上述div是jquery提供的layout控件,目标是实现移动layout内部的指定id的div)
解决方案 »
- JQuery获取表格值问题,加急!!加急!!加急!!加急!!加急!!!!!!!!!
- Ext tabpanel 隐藏选项卡
- 如何在js函数里面写一个form 表单,并提交
- $.post()的小问题
- 上传的图片直接显示为当前页面背景,如何实现?
- 这个<tr>的onmouseover怎么写
- 烦琐的日期校验问题--在页面实现
- 如何用javaScript弹出一个具有“是”,“否”,“取消”三个按钮的对话框?
- 如何用javascript动态的生成多个不同的表单?帮帮忙!
- vs 2010 忽然不能调试js了
- 高分求救,ocx加载进 jsp页面 为啥不像图片那种显示在理边,跑jsp外层了
- Javascript中一段代码的意思
这段代码还有其它一些问题,比如拖动时鼠标释放了,但事件没有释放,即时没有按住鼠标,也会导致拖动目标跟随鼠标移动。可以参考一下网上成熟的拖动源码。
以下是测试代码,必须与jquery.js放在同一个目录使用。
<!doctype html>
<div data-role='page' id='mainPage' style="border:1px solid green;">
<div class="ui-grid-b" style="cursor:pointer" ><div class="ui-block-a" id="A"><div id="AA" class="ui-bar ui-bar-d" style="height:60px" class="content">
<div style="float:left;width:90px;border:1px solid red;" id="me" ><a data-role='button' style="width:70px;" >Link button</a></div>
</div></div><div class="ui-block-b" id="B"><div id="BB" class="ui-bar ui-bar-d" style="height:60px"></div></div><div class="ui-block-c"><div id="CC" class="ui-bar ui-bar-d" style="height:60px"></div></div></div>
</div>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript">
$(function(){
var _move,_x,_y;
$("#me").css("position","absolute");
$("#me").mousedown(function(e){
var p = $("#me");
var offset = p.offset();
_move=true;
_x=e.pageX-offset.left;
_y=e.pageY-offset.top;
});
$("#me").mousemove(function(e){
var x,y;
if(_move){
x=e.pageX-_x;//移动时根据鼠标位置计算控件左上角的绝对位置
y=e.pageY-_y;
//$("#me").css("position","absolute");
$("#me").css({top:y,left:x});
}
}).mouseup(function(){
_move=false;
});
});
</script>