日期:2014-05-16  浏览次数:20397 次

如果javaScript事件调用的函数有参数,怎么改为事件监听程序的形式
比如这个程序,move函数带有参数。
<script>
function move(obj)
{
if(obj.align=="left"){obj.align="right";}
else if (obj.align=="right"){obj.align="left";}
 }
</script>
<p align="left" onMouseOver="move(this)">网页设计学习网</p>

要是要写成事件监听程序的形式,则move函数后不能带有括号,那怎么带参数呢?
我写成下面这样就不行了,请问谁知道怎么改哦?
<script>  
window.onload= function(){
var demo = document.getElementById("demo");
demo.onMouseOver=move;
}
function move()
{
if(this.align=="left"){this.align="right";}
else if (this.align=="right"){this.align="left";}
 }
</script>
<p id="demo">Click Here</p>
------解决方案--------------------
<script>  
window.onload= function(){
var demo = document.getElementById("demo");
demo.onMouseOver=function(){move(demo );};
}
function move(obj)
{
if(obj.align=="left"){obj.align="right";}
else if (obj.align=="right"){obj.align="left";}
 }
</script>
------解决方案--------------------
<script>  
window.onload= function(){
var demo = document.getElementById("demo");
demo.onmouseover=move;
}
function move(evt)
{
if(this.style.textAlign=="right"){this.style.textAlign="left";}
else {this.style.textAlign="right";}
}
</script>
<p id="demo">Click Here</p> 

也可以使用
ele = window.event?event.srcElement:evt.target
实现
------解决方案--------------------
你用的方法没有问题,只是<p>中没写align="left"
导致两个if都不执行


<script>   
window.onload= function(){ 
var demo = document.getElementById("demo"); 
demo.onmouseover=move; 

function move()
{
if(this.align=="left"){this.align="right";}
else if (this.align=="right"){this.align="left";}
 }
</script>
<p id="demo" align="left">Click Here</p> 

------解决方案--------------------
demo.onMouseOver
需要改成
demo.onmouseover
才可以