怪问题:js函数不调用就自己执行了

first236108 2016-11-17 02:43:16
<!DOCTYPE html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>无标题文档</title>
</head>

<body>
<p id="cookiedata">
</p>
<p id="first">
</p>
<button id="wirte">add cookie</button>
<button id="updata">updata cookie</button>
<button id="del">del cookie</button>

<script type="text/javascript">
var cookieCount=0;
readCookies();
function readCookies(){
document.getElementById("wirte").onclick=createCookies();
document.getElementById("updata").onclick=updataCookies();
document.getElementById("cookiedata").innerHTML=document.cookie;
}
function createCookies(){
cookieCount++;
document.cookie = "Cookie_" + cookieCount + "=Value_" + cookieCount;
readCookies();
}
function updateCookie(){
document.cookie = "Cookie_" + cookieCount + "=Updated_" + cookieCount;
readCookies();
}
</script>

</body>
</html>

为什么页面一加载就执行了createCookies()这个函数?我点按钮反而没反应。。。
改成以下写法就可以,为啥呢??
<button id="wirte" onClick="createCookies()">add cookie</button>
<button id="updata" onClick="updateCookie()">updata cookie</button>
...全文
1395 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
tcmakebest 2016-11-21
  • 打赏
  • 举报
回复
要么去掉括号, 要么加上引号 document.getElementById("wirte").onclick=createCookies; document.getElementById("wirte").onclick="createCookies()";
伊泽瑞尔灬 2016-11-18
  • 打赏
  • 举报
回复
引用 3 楼 qq_34353762 的回复:
为什么去掉就好了?
加了括号相当于调用了函数,不加类似赋值的形式。
天际的海浪 2016-11-17
  • 打赏
  • 举报
回复 2
引用 3 楼 qq_34353762 的回复:
为什么去掉就好了?
JS中的函数是一种叫做Function引用类型的实例,因此函数是一个对象。函数名则是指向这个对象的引用地址。 做为一个对象,函数是可以赋值传递的。 事件所需要的是函数对象的引用地址。 函数名后面不加圆括号()就是获取函数对象的引用地址,(这样不调用执行函数)。 如: window.onload=login; 表示把函数名login这个对象的引用地址赋值给window.onload。 函数名后面的圆括号()实际上是调用(执行)函数的运算符。 如果函数名后面加上圆括号就表示立即调用(执行)这个函数里面的代码。
qq_34353762 2016-11-17
  • 打赏
  • 举报
回复
为什么去掉就好了?
songhuanle 2016-11-17
  • 打赏
  • 举报
回复
楼上正解,,不过你方法名写错了吧
天际的海浪 2016-11-17
  • 打赏
  • 举报
回复 2
document.getElementById("wirte").onclick=createCookies(); document.getElementById("updata").onclick=updataCookies(); 红色括号去掉

39,084

社区成员

发帖
与我相关
我的任务
社区描述
HTML5是构建Web内容的一种语言描述方式。HTML5是互联网的下一代标准,是构建以及呈现互联网内容的一种语言方式.被认为是互联网的核心技术之一。
社区管理员
  • HTML5社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧