javascript drag类操作多个对象时出错
自己写的一个drag类,如果是一个new drag()的话,没问题.
但是如果写两个new drag..只有后面的起作用.
朋友们知道为什么吗
但是如果写两个new drag..只有后面的起作用.
朋友们知道为什么吗
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>drag类</title>
</head>
<body>
<style>
#pop{width:400px;background-color:#CCCCCC; border:1px solid #000;}
#popt{border:1px solid #000; border-left:none; border-right:none; cursor:move}
#btnclost{cursor:hand;float:right}
#popm{height:300px;}
#ddd{float:left}
</style>
<div id="ddd">
222222222222222222222222
</div>
<div id="pop">
<span id="btnclost">X</span><div id="popt">标题标题标题标题标题标题</div>
<div id="popm">
内容内容内容内容内容内容内容内容内容内容内容内容
</div>
</div>
<script>
function $(o){return document.getElementById(o)}
$('btnclost').onclick=function(){$('pop').style.display='none';}
var drag=function(obj,handle){
with(this){
d=0;cache={};
no=$(obj).cloneNode(true);
if($(obj)){
o=$(obj);d=1;
hd=(!$(handle)?o:$(handle));
hd.onmousedown=function(e){
if(!e){var e=window.event}
x=$(obj).offsetLeft;
y=$(obj).offsetTop;
ow=e.clientX-x;
oh=e.clientY-y;
with(no.style){
position='absolute';
left=x+'px';
top=y+5+'px';
filter='Alpha(Opacity="30")';
}
document.body.appendChild(no);
document.onselectstart=function(){return false}
}
no.onmouseup=function(e){
if(!e){var e=window.event}
try{
document.body.removeChild(no);
with($(obj).style){
position='absolute';
left=(e.clientX-ow)+'px';
top=(e.clientY-oh)+'px';
}
}catch(err){}
d=0;document.onselectstart=function(){return true};
drag=null;
}
no.onmousemove=function(e){
if(!e){var e=window.event}
try{
with(no.style){
left=e.clientX-ow+'px';
top=e.clientY-oh+'px';
}
}catch(err){}
}
}
}}
new drag('ddd');//这个没起作用
new drag('pop');//只有这个起作用
</script>
</body>
</html>
...全文
相关推荐
一个js拖拽的效果类和dom-drag.js浅析
### 《一个JS拖拽的效果类和dom-drag.js浅析》#### 一、Drag类简介在本文中,我们将探讨一个简单的JavaScript拖拽效果类——Drag类,该类可实现网页元素的拖拽功能。
jQuery拖拽插件drag.js
《jQuery拖拽插件drag.js深度解析》在网页开发中,实现元素的拖放功能是一种常见的交互设计,它能够提升用户体验,使用户能够通过直观的拖拽操作与页面进行互动。
拖拽插件drag.js
首先,drag.js是基于JavaScript和jQuery库开发的,这意味着你需要在项目中引入jQuery才能使用此插件。jQuery库简化了DOM操作和事件处理,使得拖拽功能的实现更加简洁高效。
js应用(Drag.js)
综上所述,`js应用(Drag.js)`描述的实现是通过JavaScript的面向对象编程,结合事件处理、DOM操作和坐标计算,创建一个允许用户拖动div元素的功能。
v-drag:在Vue.js上集成拖动的最简单方法
本文介绍了一个名为v-drag的Vue.js插件的JavaScript配置文件,该配置文件继承自'airbnb-base',适用于多种环境,并详细说明了其代码风格规则。同时,文章还探讨了该插件的版本、


