2013-06-02 24 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

相關問題