注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

php 王建

php之路

 
 
 

日志

 
 

js-setAttribute 属性onclick不执行的解决方案  

2012-01-10 10:19:14|  分类: js |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

//错误
 document.getElementById("btnComment"+blogId).setAttribute("onclick","writeReversion('"+id+"','"+blogId+"')");

//正确
document.getElementById("btnComment"+blogId).setAttribute("onclick",new Function("writeReversion('"+id+"','"+blogId+"')"));

原因:

属性里的参数如果是函数那应该使用new Function()来创建或实例化这个函数,而第一句代码只能说明属性值是是字符串。

<script type="text/javascript">
      var i = 0;
function addFile()
{
    i++;
    if ( i >=5 )
    return false?
    else
    {
      var div = document.createElement("div");
      var f = document.createElement("input");
      f.setAttribute("type", "file")
      f.setAttribute("name", "File")
      f.setAttribute("size", "40")
      div.appendChild(f)
      var d = document.createElement("input");
      d.setAttribute("type", "button")
      d.setAttribute("onclick", "deteFile(this)");
      d.setAttribute("value", "移除")
      div.appendChild(d)
      document.getElementById("_container").appendChild(div);
    }

    function deteFile(o) {
       i--;
      while (o.tagName != "DIV") o = o.parentNode;
      o.parentNode.removeChild(o);
    }
</script>
这是一个asp.net实现多文件上传的代码的一部分。
在IE和Firefox中一切正常,但是傲游浏览器中却不能实现删除效果。

网上搜索了一下,终于找到了解决方法,改成这样就可以了:
  d.onclick=function(){deteFile(this); };

  评论这张
 
阅读(1666)| 评论(0)
推荐 转载

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2018