通过js写html代码,添加事件传参数问题的解决方案

现在如果有这么一段html代码:

<input type="text" onchange="test(this)" />

我不希望直接写进html页面,用js的方法来写:

var input = document.createElement("input");

input.setAttribute("type", "text");

 

接下里就是给他加上onchang事件

如果是在没有参数的情况下,那么实现是很简单的,如下:

input.attachEvent("onchange", test);

这时候,页面生成的html是这样的,如下:

 

<input type="text" onchange="test()" />

 

但这并不是我想要的,我要向test方法里面传参数

 

遂问度娘,查了一些资料,解决办法如下:

 

封装一个js方法,如下:

function AttachEvent(target, eventName, handler, obj) { var eventHander = handler; if (obj) { eventHander = function(e) { handler.call(obj, e); } } if (window.attachEvent)//for IE target.attachEvent("on" + eventName, eventHander); else //for FF target.addEventListener(eventName, eventHander, false); }

 

然后添加onchange事件的代码写成这样:

 

AttachEvent(input,"change", test, input);

 

这样就OK了。。。

你可能感兴趣的:(html,function,input)