当onmouseout事件发生时,我需要得到x和this.y的值。但作用域完全搞不懂
<script type="text/javascript">
function set_div_data()
{
var x = 100;
this.y = 100;
document.getElementById("mydiv").onmouseout = function()
{
//在这里如何得到x和this.y的值呢?
};
}
</script>

解决方案 »

  1.   

    that = this;
        document.getElementById("mydiv").onmouseout = function()
        {
            //在这里如何得到x和this.y的值呢?
    console.log(x);
    console.log(that.y);
        };这样应该就可以了,试试看!
      

  2.   


    <style>
    #mydiv{height:150px;width:150px;background-color:yellow}
    </style><div id="mydiv">
    </div><script type="text/javascript">
    function set_div_data(){
    var x = 200;
    this.y = 300;
    var t=document.getElementById("mydiv").onmouseover = function(){
    var t=x;
    var p=new set_div_data();
    alert(t+"########"+p.y);
    }
    }
    set_div_data();
    </script>
      

  3.   

    function set_div_data()
    {
        var x = 100;
        this.y = 100;
        document.getElementById("mydiv").onmouseout = (function()
        {
            $a = x;
            $b = this.y;
            return function(){
            
            }
        }());
    }
    set_div_data();
      

  4.   

    光这段代码加个that就行
    <style type="text/css">
    #mydiv {
    background:red;
    }
    </style>
    <div id="mydiv">click</div>
    <script type="text/javascript">
    function set_div_data()
    {
        var x = 100;
    this.y = 100;
    var that= this;
        document.getElementById("mydiv").onmouseout = function()
        {
            alert(x);
            alert(that.y);
        };
    }
    set_div_data();
    </script>
      

  5.   


    只有一个对象会自动变……,会覆盖之前的。function Bos()
    {
    this.Dothis = function(x)
    {
    var obj = document.getElementById(x);
    this.t = 0;
    gthis = this;
    obj.onmouseout = function()
    {
    gthis.t = window.setInterval( function()
    {
    obj.innerHTML = Math.random().toString();
    }, 1000);
    };
    obj.onmouseover = function()
    {
    window.clearInterval( gthis.t );
    };
    };
    }var obj = new Bos();
    obj.Dothis( "id1" );
    var objx = new Bos();
    obj.Dothis( "id2" );
      

  6.   

    gthis = this; 
    少了var ,gthis不是内部对象了,而是根下面的对象,也就是gthis被两个对象共用了。
      

  7.   


    求教,有什么方法学好这个JS。这么多理论的……变量的访问(声明 读 写)      让我操作变量
    代码块的封装(function)      让我重用代码
    逻辑调度 (if switch)        让我控制代码的运行流程
    数据结构(object array)      让我组织数据
    集合处理 (迭代 for while)   让我循环处理复数次的操作
    对象 (new prototype)        让我产生自己的对象语言的核心就这么点  这6个类型 你一个星期弄熟一块 2个月后自己考核下 呵呵
    大部分语言 理论就这样了吧
    剩余的就是和 环境交互(这个才是麻烦的东西)