今天做東東的時候要用js創建html元素然后動態給該元素添加方法,走了不少彎路。最后把解決方法發布,讓大家以后少走彎路。
js文件
function CheckNull(id)
{
//DoSomeThing
}
var CheckNewNull= function(id)
{
return function(){
CheckNull(id);
}
}
給Html元素添加方法
//創建一個textarea
std2area=document.createElement("textarea");
//設置屬性
std2area.setAttribute("id","member_Task"+position);
std2area.setAttribute("name","member_Task"+position);
//添加方法
std2area.attachEvent("onblur",CheckNewNull("member_Task"+position));
如果添加方法寫成:std2area.attachEvent("onblur",CheckNull("member_Task"+position));
或者寫成std2area.attachEvent("onblur",CheckNull);
那么會出現錯誤。原因是這樣做是將CheckNull("member_Task"+position)的返回值賦給onblur
而不是將函數CheckNull賦給該元素。所以正確的做法是將CheckNull用一個函數返回,如上所示。
最后寫寫添加方法的其它途徑:
Std2area.onblur=CheckNull;
Std2area.setAttribute(“onblur”,CheckNull);
歡迎轉載:http://www.kanwencang.com/bangong/20161206/64743.html
文章列表