【IT168技术文档】
今天做东东的时候要用js创建html元素然后动态给该元素添加方法,走了不少弯路。最后把解决方法发布,让大家以后少走弯路。
js文件
给Html元素添加方法function CheckNull(id) { //DoSomeThing } var CheckNewNull= function(id) { return function(){ CheckNull(id); } }
如果添加方法写成://创建一个textarea std2area=document.createElement("textarea"); //设置属性 std2area.setAttribute("id","member_Task"+position); std2area.setAttribute("name","member_Task"+position); //添加方法 std2area.attachEvent("onblur",CheckNewNull("member_Task"+position));
那么会出现错误。原因是这样做是将CheckNull("member_Task"+position)的返回值赋给onblurstd2area.attachEvent("onblur",CheckNull("member_Task"+position)); 或者写成std2area.attachEvent("onblur",CheckNull);
而不是将函数CheckNull赋给该元素。所以正确的做法是将CheckNull用一个函数返回,如上所示。
最后写写添加方法的其它途径:
Std2area.onblur=CheckNull; Std2area.setAttribute(“onblur”,CheckNull);