2013-06-02 23 views
1

我不知道这里有什么问题,但是你认为什么是错的?JavaScript - 将一个函数绑定到一个事件到一个元素会返回一个错误?

我有这个非常简单的JavaScript函数,当被直接执行 的检查元素控制台完美的作品,但是当我将其绑定到一个事件,然后 返回错误“未捕获的类型错误:对象不是一个函数”。你认为 这里有什么错误?

下面是该功能。

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

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

要么给该元素一个不同的ID或您的功能一个不同的名称。


FYI,there are more flexible ways to bind event handlers

+0

哇!我没有意识到这一点。谢谢! +1 – 2013-06-02 12:56:04

+0

非常感谢您的回答。我认为别的东西正在造成这个问题。谢谢。 :) – JoshuaLangit123

相关问题