新学JS,这是正确的代码:
<html>
<body>
<p><a href="1111.html" id="cat1">图片1</a></p>
<div><span id="show"></span></div>
</body>
</html>window.onload=init;
function init()
{
var show=document.getElementById("cat1");
show.onclick=onshow;
}function onshow()
{
document.getElementById("show").innerHTML="测试成功";
return false;
}但如果我把JS代码修改为带参数函数(红色为修改部分)
function init()
{
var show=document.getElementById("cat1");
show.onclick=onshow("测试成功");
}
function onshow(msg)
{
document.getElementById("show").innerHTML=msg;
return false;
}代码就是错误的了,而且代码会完全忽略onclick事件,这是为什么?
<html>
<body>
<p><a href="1111.html" id="cat1">图片1</a></p>
<div><span id="show"></span></div>
</body>
</html>window.onload=init;
function init()
{
var show=document.getElementById("cat1");
show.onclick=onshow;
}function onshow()
{
document.getElementById("show").innerHTML="测试成功";
return false;
}但如果我把JS代码修改为带参数函数(红色为修改部分)
function init()
{
var show=document.getElementById("cat1");
show.onclick=onshow("测试成功");
}
function onshow(msg)
{
document.getElementById("show").innerHTML=msg;
return false;
}代码就是错误的了,而且代码会完全忽略onclick事件,这是为什么?
2. onshow("测试成功") 表示执行这个方法
3. onclick = 后面显然只能跟一个Function
4. show.onclick = onshow("测试成功") 实际上等于 show.onclick = false
(因为你执行了这个方法,return false)
5. 想传参可以这样写
show.onclick = function(){
onshow("测试成功");
}
或者
function onshow(msg){
return function(msg){
//......
}
}
不知道写错了没,思路就是这样的,搞清楚原理就好
<body>
<p> <a href="#" id="cat1">图片1 </a> </p>
<div> <span id="show"> </span> </div> <script>
window.onload=init;
function init()
{
var show=document.getElementById("cat1");
show.onclick= function(){onshow("测试成功")};
} function onshow(msg)
{
document.getElementById("show").innerHTML=msg;
return false;
} </script> </body>
</html>