
javascript 关于静态方法里的动态变量问题 15
varmdown=function(num){arr[num].style["width"]="200px";}arr[arr.length-1].attachEvent...
var mdown=function(num){arr[num].style["width"]="200px";}
arr[arr.length-1].attachEvent('onmousedown',function(){mdown(arr.length-1)});//假设序数0
arr[arr.length-1].attachEvent('onmousedown',function(){mdown(arr.length-1)});//假设序数1
//执行结果,两个元素分别被点击后,传入的Num值都是1;
想要的效果是,每次这个元素被点击时,将此元素在数组中的相应序数传入mdown方法中。
但这个动态添加元素与事件的方法。最后每个元素被点击时所传入的参数num值都是数组中最后一个元素的序数(arr.length-1),而不是相应序数。
如何在添加事件时,将静态常量数值写入参数中?
也就是把function(){mdown(arr.length-1)}中的arr.length-1变为常量。
arr[arr.length-1].attachEvent('onmousedown',function(){mdown(1234)}); 展开
arr[arr.length-1].attachEvent('onmousedown',function(){mdown(arr.length-1)});//假设序数0
arr[arr.length-1].attachEvent('onmousedown',function(){mdown(arr.length-1)});//假设序数1
//执行结果,两个元素分别被点击后,传入的Num值都是1;
想要的效果是,每次这个元素被点击时,将此元素在数组中的相应序数传入mdown方法中。
但这个动态添加元素与事件的方法。最后每个元素被点击时所传入的参数num值都是数组中最后一个元素的序数(arr.length-1),而不是相应序数。
如何在添加事件时,将静态常量数值写入参数中?
也就是把function(){mdown(arr.length-1)}中的arr.length-1变为常量。
arr[arr.length-1].attachEvent('onmousedown',function(){mdown(1234)}); 展开
2012-03-01
展开全部
//兼容不同版本浏览器动态增加事件函数
function _attachEvent(obj, evt, func, eventobj) {
eventobj = !eventobj ? obj : eventobj;
if(obj.addEventListener){
obj.addEventListener(evt, func, false);
} else if(eventobj.attachEvent) {
obj.attachEvent('on' + evt, func);
}
}
var arr = document.getElementsByTagName("a");
function mdown(num){alert(arr[num].href);}
//_detachEvent('onmousedown',function(){mdown(arr.length-1)});//假设序数0
function tesss(){
for(var i=0,len=arr.length;i<len;i++){
_attachEvent(arr[i],'click', function(i){return function(e){mdown(i);}}(i));
}
}
tesss();
//这个程序在a标签上面动态绑定click事件,每次获取对应a标签的链接地址
function _attachEvent(obj, evt, func, eventobj) {
eventobj = !eventobj ? obj : eventobj;
if(obj.addEventListener){
obj.addEventListener(evt, func, false);
} else if(eventobj.attachEvent) {
obj.attachEvent('on' + evt, func);
}
}
var arr = document.getElementsByTagName("a");
function mdown(num){alert(arr[num].href);}
//_detachEvent('onmousedown',function(){mdown(arr.length-1)});//假设序数0
function tesss(){
for(var i=0,len=arr.length;i<len;i++){
_attachEvent(arr[i],'click', function(i){return function(e){mdown(i);}}(i));
}
}
tesss();
//这个程序在a标签上面动态绑定click事件,每次获取对应a标签的链接地址
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询