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函数……
展开
 我来答
hyjiacan
推荐于2016-06-30 · TA获得超过3912个赞
知道小有建树答主
回答量:894
采纳率:100%
帮助的人:1087万
展开全部

那个。。

在动态向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,很无语,也不知道为什么!
追答
那你到底写在哪的 ?  检查一下函数名,是不是写错了。。  将函数声明在使用前就可以了

你现在怎么写的。。 贴出来
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式