1

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

我有这个非常简单的 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()">

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

4

1 回答 1

1

问题是您有一个 ID 元素pass_sh。具有 ID 的元素将创建具有引用该元素的 ID 的全局变量。所以pass_sh里面的 HTML 属性似乎是指 DOM 元素而不是你的函数。

要么给元素一个不同的 ID,要么给你的函数一个不同的名字。


仅供参考,有更灵活的方法来绑定事件处理程序

于 2013-06-02T12:41:25.553 回答