Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/84.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何对多个元素使用函数?_Javascript_Jquery_Html_Css - Fatal编程技术网

Javascript 如何对多个元素使用函数?

Javascript 如何对多个元素使用函数?,javascript,jquery,html,css,Javascript,Jquery,Html,Css,我创建了一个可拖动的盒子。您可以在下面看到我的代码: //更改弹出窗口的位置 函数句柄\u鼠标向下(e){ window.my_拖动={}; my_.pageX0=e.pageX; my_.pageY0=e.pageY; my_draging.elem=$(“.fast_login_form”); my_draging.offset0=$(this.offset(); 函数句柄\u拖动(e){ var left=my_draging.offset0.left+(e.pageX-my_dragi

我创建了一个可拖动的盒子。您可以在下面看到我的代码:

//更改弹出窗口的位置
函数句柄\u鼠标向下(e){
window.my_拖动={};
my_.pageX0=e.pageX;
my_.pageY0=e.pageY;
my_draging.elem=$(“.fast_login_form”);
my_draging.offset0=$(this.offset();
函数句柄\u拖动(e){
var left=my_draging.offset0.left+(e.pageX-my_draging.pageX0);
var top=my_dragging.offset0.top+(e.pageY-my_dragging.pageY0);
$(my_.elem)
.offset({top:top,left:left});
}
功能手柄\鼠标(e){
$(“正文”)
.off('mousemove',手柄拖动)
.off('mouseup',handle_mouseup);
}
$(“正文”)
.on('mouseup',handle_mouseup)
.on('mousemove',手柄拖动);
}
//使“快速登录表单”可拖动
$(“.fast\u login\u form\u header”).mousedown(handle\u mousedown)
.fast\u登录表单{
边框:2倍纯色灰色;
宽度:250px;
高度:100px;
}
.快速登录表单标题{
文本对齐:居中;
边框底部:1px纯色灰色;
光标:移动;
}

单击并按住并移动
使用
$(this).最近('.fast\u login\u form')
而不是
$('.fast\u login\u form')

//更改弹出窗口的位置
函数句柄\u鼠标向下(e){
window.my_拖动={};
my_.pageX0=e.pageX;
my_.pageY0=e.pageY;
my_dragging.elem=$(this).closest('.fast_login_form');
my_draging.offset0=$(this.offset();
函数句柄\u拖动(e){
var left=my_draging.offset0.left+(e.pageX-my_draging.pageX0);
var top=my_dragging.offset0.top+(e.pageY-my_dragging.pageY0);
$(my_.elem)
.offset({top:top,left:left});
}
功能手柄\鼠标(e){
$(“正文”)
.off('mousemove',手柄拖动)
.off('mouseup',handle_mouseup);
}
$(“正文”)
.on('mouseup',handle_mouseup)
.on('mousemove',手柄拖动);
}
//使“快速登录表单”可拖动
$(“.fast\u login\u form\u header”).mousedown(handle\u mousedown)
.fast\u登录表单{
边框:2倍纯色灰色;
宽度:250px;
高度:100px;
}
.快速登录表单标题{
文本对齐:居中;
边框底部:1px纯色灰色;
光标:移动;
}

单击并按住并移动
单击并按住并移动

只需使用选择所有可拖动元素的选择器,例如,给它们一个类
draggable
,然后用
$(“.draggable”)
选择它们。不要使用全局变量(
window.my\u dragging
),而是使用局部变量
var my\u dragging
,这样它对每个元素都是唯一的。

为什么不创建一个新的类“draggable”,将其添加到您想要draggable的任何元素中,并切换选择器以使用它

my_dragging.elem  =  $(".draggable");

你可以这样写:
my_dragging.elem=$(“.fast\u login\u form,.other,.andother,#withID,div”)仅使用带逗号的单独选择器以上是实现所需功能的最简单、最快的方法,但我建议使用不同的类来指示某些内容是可拖动的。您可以将两个div都设置为
,然后将一行更改为
$(this).closest('.draggable')。然后可以使用
$(“.draggable.fast\u login\u form\u header”).mousedown(handle\u mousedown)使触发器行更通用我明白了,好的,tnx。。关于最后一点,我必须说,我只希望
div
的头部分是可拖动的。所以我不需要写这行
$(“.draggable”).mousedown(handle\u mousedown)。我说得对吗?@stack是的,你说得对。在意识到我犯了那个错误后,我更新了我的评论。。这个答案太棒了。
:-)
我爱你,伙计。
;-)。。因为当我移动一个元素和另一个元素时,
show()
。我的是一个快速解决方案,但专用类和局部变量更理想。