日期:2014-05-17  浏览次数:20454 次

菜鸟请教javascript问题
C# code

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title></title>
    <script type="text/javascript">
        function test() {
            this.value = 1;
            this.get = function () { alert(this.value); }
        }
    </script>
</head>
<body>
    <form id="form1" runat="server">
    <div>
        <input type="text" id="a" value="a" />
        <input type="text" id="b" value="b" />
    </div>
    <script type="text/javascript">
        var t = new test();
        document.getElementById("a").onclick = function () { t.get()};//这个结果是1
        document.getElementById("b").onclick = t.get();//这个效果是加载页面就会弹对话框显示1,怎么理解?
        document.getElementById("b").onclick = t.get;//这个是取get值,所以点击b文本框时,取得b的value值显示b,可以理解
    </script>
    </form>
</body>
</html>





------解决方案--------------------

function () { t.get()};你定义了这个函数,a的click后调用这个函数,这个函数里有t.get();

对于 document.getElementById("b").onclick = t.get();当程序走到这里就会t.get()了
------解决方案--------------------
执行function(){alert(this.value);}
getElementById("a").onclick 点击执行
------解决方案--------------------
探讨

引用:
function () { t.get()};你定义了这个函数,a的click后调用这个函数,这个函数里有t.get();

对于 document.getElementById("b").onclick = t.get();当程序走到这里就会t.get()了

为什么不是我点击事件触发啊

------解决方案--------------------
探讨

引用:
function () { t.get()};你定义了这个函数,a的click后调用这个函数,这个函数里有t.get();

对于 document.getElementById("b").onclick = t.get();当程序走到这里就会t.get()了

我觉得你的理解有问题。“function () { t.get()};你定义了这个函数”和这个匿名……

------解决方案--------------------
打开页面执行执行function(){alert(this.value);}
a要点击执行才执行 function () { t.get()};
------解决方案--------------------
document.getElementById("b").onclick = t.get();
相当于
var a = t.get();
document.getElementById("b").onclick = a;
这样看明白了吧

------解决方案--------------------
涉及js的函数及方法问题,比较饶人,回答的也饶人,围观,等澄清。
------解决方案--------------------
探讨

引用:

引用:

document.getElementById("b").onclick = t.get();
相当于
var a = t.get();
document.getElementById("b").onclick = a;
这样看明白了吧

明白了

var a = t.get();就会调用函数。这个和直接写t.g……

------解决方案--------------------
C# code

 function test() {
            this.value = 1;
            this.get = function () { alert(this.value); }
        }
//执行test()方法当然要弹出1了