jquery创建div并绑定onmousedown方法
我通过jquery创建自定义函数$.extend({setDiv:function(){vardiv=$("<div></div>");//创建一个divdiv.addC...
我通过jquery创建自定义函数
$.extend({
setDiv:function(){
var div = $("<div></div>");//创建一个div
div.addClass(divClass);
div.attr("onmousedown","moveInit(this,event);");
div.attr("onmousemove","Move(this,event);");
div.attr("onmouseup","stopMove()");
div.attr("onmouseout","stopMove()");
return div;
}
});
想创建的div是这样的:
<div onmousedown='moveInit(this,event);' onmousemove='Move(this,event)' onmouseup='stopMove()' onmouseout='stopMove()' ondblclick='goUpdHallHW(this)'></div>
其中的函数'moveInit(this,event)'、'Move(this,event)' 、'stopMove()' 、'stopMove()' 是用js写的
但是按上面的方法没有办法绑定事件,请问在不重写这些方法的情况下,怎么绑定这些事件响应对应的js函数…… 展开
$.extend({
setDiv:function(){
var div = $("<div></div>");//创建一个div
div.addClass(divClass);
div.attr("onmousedown","moveInit(this,event);");
div.attr("onmousemove","Move(this,event);");
div.attr("onmouseup","stopMove()");
div.attr("onmouseout","stopMove()");
return div;
}
});
想创建的div是这样的:
<div onmousedown='moveInit(this,event);' onmousemove='Move(this,event)' onmouseup='stopMove()' onmouseout='stopMove()' ondblclick='goUpdHallHW(this)'></div>
其中的函数'moveInit(this,event)'、'Move(this,event)' 、'stopMove()' 、'stopMove()' 是用js写的
但是按上面的方法没有办法绑定事件,请问在不重写这些方法的情况下,怎么绑定这些事件响应对应的js函数…… 展开
1个回答
展开全部
那个。。
在动态向DOM中添加元素的时候,不可以使用标签的方式绑定事件。
因为标签绑定事件是在页面加载的时候处理的,而你动态添加的元素在页面加载的时候并不存在,更不要说读取标签绑定事件了。
这里,既然你用到了jquery,为什么不用jquery的方式去绑定事件呢?
div.attr("onmousedown","moveInit(this,event);");
div.attr("onmousemove","Move(this,event);");
div.attr("onmouseup","stopMove()");
div.attr("onmouseout","stopMove()");
这一段,改为:
// 由于目标函数需要参数,所以这里使用匿名函数来调用
div.mousedown(function(event){
moveInit(this,event);
});
div.mousemove(function(event){
Move(this,event);
});
div.mouseup(stopMove);
div.mouseout(stopMove);
追问
我有想过这个方法,但是moveInit(this,event);不知道应该写哪里,写$(document).ready();前面、后面、还是里面……不同的调用方法,写的位置不同,总会找不到这个函数……总是undefined,很无语,也不知道为什么!
追答
那你到底写在哪的 ? 检查一下函数名,是不是写错了。。 将函数声明在使用前就可以了
你现在怎么写的。。 贴出来
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询