2010-05-21 86 views

回答

25

這一個工程:

<input type="button" value="test" onclick="alert('hey'); alert('ho');" />

而這一個了:

function Hey() 
{ 
    alert('hey'); 
} 

function Ho() 
{ 
    alert('ho'); 
} 

<input type="button" value="test" onclick="Hey(); Ho();" /> 

因此,答案是 - 是的,你可以:) 不過,我建議你使用非侵入式JavaScript。與HTML混合JS只是討厭。

2

在一個元素中不需要有兩個函數,只需要一個調用另外兩個函數!

HTML 
<a href="#" onclick="my_func()" >click</a> 

JS 
function my_func() { 
    my_func_1(); 
    my_func_2(); 
} 
5

您可以將處理程序作爲你喜歡哪會叫其他許多:

<a href="#blah" id="myLink"/> 

<script type="text/javascript"> 

function myOtherFunction() { 
//do stuff... 
} 

document.getElementById('myLink').onclick = function() { 
    //do stuff... 
    myOtherFunction(); 
}; 

</script> 
+0

感謝好友這個解決方案幫助我更多 – picnic4u 2010-05-21 14:05:17

+1

這種方法的缺點是,這裏的上下文將是全局窗口對象,並且「this」在myOther ....聲明中不起作用,這只是指函數而不將它附加到元素的onclick屬性上,值得對此進行解釋。 :)除此之外,答案將適用於「調用2個函數或200個」的情況。 – 2015-08-22 14:02:54

0

你可以嘗試這樣的事情,以及

<a href="#" onclick="one(); two();" >click</a> 

<script type="text/javascript"> 
    function one(){ 
     alert('test'); 
    } 

    function two(){ 
     alert('test2'); 
    } 
</script> 
13

的HTML

<a href="#" id="btn">click</a> 

和JavaScript

// get a cross-browser function for adding events, place this in [global] or somewhere you can access it 
var on = (function(){ 
    if (window.addEventListener) { 
     return function(target, type, listener){ 
      target.addEventListener(type, listener, false); 
     }; 
    } 
    else { 
     return function(object, sEvent, fpNotify){ 
      object.attachEvent("on" + sEvent, fpNotify); 
     }; 
    } 
}()); 

// find the element 
var el = document.getElementById("btn"); 

// add the first listener 
on(el, "click", function(){ 
    alert("foo"); 
}); 

// add the second listener 
on(el, "click", function(){ 
    alert("bar"); 
}); 

這將提醒兩個 '富' 和 '酒吧' 時點擊。

相關問題