JavaScript - 将函数绑定到元素返回错误?

时间:2013-06-02 12:38:44

标签: javascript dom

我不知道这里有什么问题,但你认为错了什么?

我有这个非常简单的JavaScript函数,当直接执行时 Inspect Element控制台工作正常,但是当我将它绑定到一个事件时,那么 它返回错误“Uncaught TypeError:object is not a function”。你觉得怎么样? 这里错了吗?

这是功能。

var pass_sh_busy = 0;
var pass_sh = function(y) {
if(pass_sh_busy) {
        document.getElementById('pass_sh').type = 'password';
        document.getElementById('pass_sh').placeholder = '********';
        pass_sh_busy = 0;
    } else {
        pass_sh_busy = 1;
        document.getElementById('pass_sh').type = 'text';
        document.getElementById('pass_sh').placeholder = 'password';
    }
}

pass_sh就是这个......

<input name="rass" id="pass_sh" placeholder="*********" type="password">

这是我的绑定元素。

<input style="width:5%" type="button" onclick="pass_sh()">

我认为这是一个非常奇怪的错误。你觉得这里有什么问题?

1 个答案:

答案 0 :(得分:1)

问题是你有一个ID为pass_sh的元素。具有ID的元素将创建全局变量,其ID指向该元素。因此,HTML属性中的pass_sh似乎是指DOM元素而不是函数。

为元素提供不同的ID或为您的函数指定不同的名称。


仅供参考,there are more flexible ways to bind event handlers