您的位置:首页 > Web前端 > JavaScript

Js动态添加事件 实现附加自己的事件属性

2012-06-08 15:14 676 查看
由于时间原因,这里先贴代码 ,明天会更新的

//private method
diqye.html5.GpsDir.prototype._addElement = function() {
var _element = document.createElement("input");
//_element.setAttribute("value",this._separator);
_element.setAttribute("type","button");
_element.setAttribute("value",this._separator);
//console.log(_element.getAttribute("value"));
//this._context.appendChild(_element);
if(this._gpsDirManager) {
this._addClickEvent(_element,
diqye.html5.GpsDir.prototype._doClickGpsDir,
null,
null);
var _current = this._gpsDirManager.getHead();
while(true) {
/*this._addClickEvent(_element,
diqye.html5.GpsDir.prototype._doClickGpsDir,
this._gpsDirManager,
_current == null ? null: _current.id);*/
this._context.appendChild(_element);
if(_current == null) break;
_element = document.createElement("input");
_element.setAttribute("type","button");
_element.setAttribute("value",_current.value + this._separator);
//_element.value = _current.value + this._separator;
this._addClickEvent(_element,
diqye.html5.GpsDir.prototype._doClickGpsDir,
this,
_current == null ? null: _current.id);
_current = _current.next;
}
}
}

//private method
diqye.html5.GpsDir.prototype._addClickEvent =function(_element,
callBack,
gpsDir,
id) {
var eventCallBack = callBack;
//********************************************************
eventCallBack = function(event) {
//console.log("enter method [eventCallBack] ");
callBack(gpsDir,id);
}
//********************************************************
if(_element.addEventListener){
_element.addEventListener("click", eventCallBack);
}else if(_element.attchEvent) {
_element.attchEvent("onclick", eventCallBack);
}else if(_element.click) {
_element.click = eventCallBack;
}else{
throw "your browse not support this library";
}
}

diqye.html5.GpsDir.prototype._doClickGpsDir = function(gpsDir, id) {
if(id == null) {
return;
}
gpsDir._gpsDirManager.tapNode(id);
gpsDir.init();
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: