JS中draggable怎么使用委托delegate

脸大无敌 2018-08-13 08:43:20
页面需求在拖动了draggable后刷新局部页面,但是刷新后绑定的拖拽方法失效,在网上搜索出来用委托应该可以实现,现在试了很多次都没办法,求大神帮忙看下代码怎么写大神们帮帮忙放了DIV定义和JavaScript里draggable方法的图


顺便附上draggable方法代码
var plan={};		

$(".dragItem").draggable({
//containment: "parent",
//axis: "x",
cursor: "move",
grid: [ 30, 31 ],
stop: function(data,data1) {
plan={
"planId":$(this).attr("id").replace("plan",""),
"begin":data1.position.left
}
var zj = data1.helper;
if(data1.position.left<-2){
zj.css('left',-2);
}else{
zj.css('left',data1.position.left)
};
UpdateData();
}
});
//})
function UpdateData(){
$.ajax({
type : 'post',
url : 'servlet/MyServlet',
data : JSON.stringify(plan),
//dataType : 'json',
//contentType:"application/json;charset=utf-8",
success : function (data) {
//location.reload();
//reloadDIV();
$("#MYDIV").load("tz.jsp");
},
error : function () {
}
});
};

...全文
351 12 打赏 收藏 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
脸大无敌 2018-08-22
  • 打赏
  • 举报
回复
引用 9 楼 lqlqlq007 的回复:
引用 8 楼 qq_25092367 的回复:
[quote=引用 7 楼 lqlqlq007 的回复:] $("#MYDIV").load("tz.jsp"); 执行这句对应你说的局部刷新吧?那就在$(".dragItem").draggable这里打个断点,如果走到断点的时候局部刷新的页面还没刷出来,那就是异步的,如果刷出来,就是同步的。
测试之后确认是异步的
那你必须等$("#MYDIV").load("tz.jsp");执行完了以后再执行draggable绑定动作。 写个定时器或者回调什么的处理一把就可以搞定了。[/quote] 虽然没成功,但是还是感谢你 谢谢啦~
讨厌走开啦 2018-08-13
  • 打赏
  • 举报
回复

$(".dragItem").draggable({
//containment: "parent",
//axis: "x",
cursor: "move",
grid: [ 30, 31 ],
stop: function(data,data1) {
plan={
"planId":$(this).attr("id").replace("plan",""),
"begin":data1.position.left
}
var zj = data1.helper;
if(data1.position.left<-2){
zj.css('left',-2);
}else{
zj.css('left',data1.position.left)
};
UpdateData();
}
});
//})
function UpdateData(){
$.ajax({
type : 'post',
url : 'servlet/MyServlet',
data : JSON.stringify(plan),
//dataType : 'json',
//contentType:"application/json;charset=utf-8",
success : function (data) {
//location.reload();
//reloadDIV();
$("#MYDIV").load("tz.jsp");
$(".dragItem").draggable({
//containment: "parent",
//axis: "x",
cursor: "move",
grid: [ 30, 31 ],
stop: function(data,data1) {
plan={
"planId":$(this).attr("id").replace("plan",""),
"begin":data1.position.left
}
var zj = data1.helper;
if(data1.position.left<-2){
zj.css('left',-2);
}else{
zj.css('left',data1.position.left)
};
UpdateData();
}
});
},
error : function () {
}
});
};


在你局部更新请求成功以后重新执行一次draggable,大概是这样吧,你自己再调一下。
脸大无敌 2018-08-13
  • 打赏
  • 举报
回复
引用 1 楼 lqlqlq007 的回复:
页面局部刷新后你需要重新执行一次拖拽事件的绑定。
能给我贴个代码嘛,我试了draggable绑定,ready绑定,但是都不对
讨厌走开啦 2018-08-13
  • 打赏
  • 举报
回复
页面局部刷新后你需要重新执行一次拖拽事件的绑定。
脸大无敌 2018-08-13
  • 打赏
  • 举报
回复
引用 9 楼 lqlqlq007 的回复:
引用 8 楼 qq_25092367 的回复:
[quote=引用 7 楼 lqlqlq007 的回复:] $("#MYDIV").load("tz.jsp"); 执行这句对应你说的局部刷新吧?那就在$(".dragItem").draggable这里打个断点,如果走到断点的时候局部刷新的页面还没刷出来,那就是异步的,如果刷出来,就是同步的。
测试之后确认是异步的
那你必须等$("#MYDIV").load("tz.jsp");执行完了以后再执行draggable绑定动作。 写个定时器或者回调什么的处理一把就可以搞定了。[/quote] 看样子又要去学习回调了,真的是每一步都要百度,哎~
讨厌走开啦 2018-08-13
  • 打赏
  • 举报
回复
引用 8 楼 qq_25092367 的回复:
引用 7 楼 lqlqlq007 的回复:
$("#MYDIV").load("tz.jsp"); 执行这句对应你说的局部刷新吧?那就在$(".dragItem").draggable这里打个断点,如果走到断点的时候局部刷新的页面还没刷出来,那就是异步的,如果刷出来,就是同步的。
测试之后确认是异步的

那你必须等$("#MYDIV").load("tz.jsp");执行完了以后再执行draggable绑定动作。

写个定时器或者回调什么的处理一把就可以搞定了。
脸大无敌 2018-08-13
  • 打赏
  • 举报
回复
引用 7 楼 lqlqlq007 的回复:
$("#MYDIV").load("tz.jsp"); 执行这句对应你说的局部刷新吧?那就在$(".dragItem").draggable这里打个断点,如果走到断点的时候局部刷新的页面还没刷出来,那就是异步的,如果刷出来,就是同步的。
测试之后确认是异步的
讨厌走开啦 2018-08-13
  • 打赏
  • 举报
回复
$("#MYDIV").load("tz.jsp"); 执行这句对应你说的局部刷新吧?那就在$(".dragItem").draggable这里打个断点,如果走到断点的时候局部刷新的页面还没刷出来,那就是异步的,如果刷出来,就是同步的。

脸大无敌 2018-08-13
  • 打赏
  • 举报
回复
引用 5 楼 lqlqlq007 的回复:
2个调试方案: 1.看下执行$("#MYDIV").load("tz.jsp");是否是异步的; 2.断点看下UpdateData里的draggable绑定动作是否成功。
1.是否异步是什么意思 2.绑定方法是能够绑定成功的,但是局部刷新依然失效
讨厌走开啦 2018-08-13
  • 打赏
  • 举报
回复
2个调试方案:

1.看下执行$("#MYDIV").load("tz.jsp");是否是异步的;
2.断点看下UpdateData里的draggable绑定动作是否成功。
脸大无敌 2018-08-13
  • 打赏
  • 举报
回复
引用 3 楼 lqlqlq007 的回复:

			$(".dragItem").draggable({
				//containment: "parent",
				//axis: "x",
				cursor: "move",
				grid: [ 30, 31 ],
				stop: function(data,data1) {
					plan={
							"planId":$(this).attr("id").replace("plan",""),
							"begin":data1.position.left
						 }
					var zj = data1.helper;
					if(data1.position.left<-2){
						zj.css('left',-2);
					}else{
  						zj.css('left',data1.position.left)
					};
					UpdateData();
		      	}
			});
			//})
			function UpdateData(){
				$.ajax({  
	                type : 'post',  
	                url : 'servlet/MyServlet', 
	                data : JSON.stringify(plan), 
	                //dataType : 'json',   
	                //contentType:"application/json;charset=utf-8", 
	                success : function (data) {  
	                	//location.reload();
	                	//reloadDIV();
	                	$("#MYDIV").load("tz.jsp");
                               $(".dragItem").draggable({
				//containment: "parent",
				//axis: "x",
				cursor: "move",
				grid: [ 30, 31 ],
				stop: function(data,data1) {
					plan={
							"planId":$(this).attr("id").replace("plan",""),
							"begin":data1.position.left
						 }
					var zj = data1.helper;
					if(data1.position.left<-2){
						zj.css('left',-2);
					}else{
  						zj.css('left',data1.position.left)
					};
					UpdateData();
		      	}
			});
	                },  
	                error : function () { 
	                }  
	            });
			};
在你局部更新请求成功以后重新执行一次draggable,大概是这样吧,你自己再调一下。
试了这个办法 局部刷新后方法依然失效
内容概要:本文介绍了COSO企业风险管理框架,阐述了企业风险管理的定义、目标、构成要素及其与内部控制的关系。文章指出,企业风险管理是一个由董事会、管理层及其他人员实施的,应用于战略制定并贯穿于企业之中的过程,旨在识别可能影响主体的潜在事项,管理风险以使其在该主体的风险容量之内,并为主体目标的实现提供合理保证。该框架强调了企业风险管理的八大构成要素:内部环境、目标设定、事项识别、风险评估、风险应对、控制活动、信息与沟通、监控。此外,文章还讨论了企业风险管理的局限性,如人为判断失误、成本与效益的权衡、管理层凌驾等。 适合人群:具备一定管理学基础知识,对风险管理有兴趣的学者、企业管理人员、内部审计师及外部审计师。 使用场景及目标:①帮助组织理解并应用企业风险管理框架,以提高组织的风险管理水平;②指导企业如何通过有效的风险管理来实现其战略、经营、报告和合规目标;③为企业提供一套标准化的风险管理语言,促进内外部沟通与合作。 阅读建议:读者应结合实际案例,深入理解每个构成要素的具体应用,同时关注企业风险管理的局限性,以全面把握企业风险管理的本质。此外,建议定期回顾和更新风险管理策略,以适应不断变化的内外部环境。

87,984

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧