2010-01-13 94 views
1

我想知道是否可以使用Javascript來更改HTML元素調用的函數/方法。使用Javascript更改HTML元素調用的方法/函數

例子:

<input type="button" id="some_id" name="some_name" value="A Button" onclick="someFunction()" /> 

我現在想用Javascript來改變呼籲onclick事件的另一功能的方法/功能顯示如下。

<input type="button" id="some_id" name="some_name" value="A Button" onclick="anotherFunction()" /> 

我嘗試使用innerHTML的,當我檢查了生成的HTML,它實際上在按鈕改變了onclick事件的價值,但是當我按一下按鈕,該方法不會被調用。

在此先感謝。

回答

3

您可以直接將函數對象分配給元素的onclick字段。例如,

var inp = document.getElementById('some_id'); 
inp.onclick = anotherFunction; 
+0

嘗試過,但N不工作。 – IndexController 2010-01-13 20:48:38

+0

定義「不工作」。這是在原始Javascript中分配事件處理程序的標準方式。 – friedo 2010-01-13 20:53:35

+0

當將其他函數賦值給onclick事件時,它立即執行該函數,這不是我想要的。我想要執行的函數onclick的元素 – IndexController 2010-01-13 21:18:05

1

使用jQuery你可以這樣做:

$('#some_id').unbind('click'); 
$('#some_id').click(function() { 
    anotherFunction(); 
}); 
+0

啊,你是完全正確的。你必須先解除綁定。謝謝,我沒有意識到:) – wprl 2010-01-13 21:18:29

+0

評論衝突 - 我編輯後刪除了我原來的評論。 +1爲jQuery *,但*我也不認爲這個開發者應該使用它 - 可能會更好地學習基礎知識第一 – Graza 2010-01-13 21:22:22