2011-05-04 1726 views

回答

45
  1. 試試這個:

    <input type="button" onclick="function1();function2();" value="Call2Functions" /> 
    
  2. 或者說,第一個函數的末尾調用第二個函數:

    function func1(){ 
        //--- some logic 
        func2(); 
        } 
    
        function func2(){ 
        //--- some logic 
        } 
    

    ...並調用FUNC1()按鈕的onclick:

    <input type="button" onclick="func1();" value="Call2Functions" /> 
    
20

正如哈里喬伊說,你可以做到這一點的onclick ATTR像這樣:

<input type="button" onclick="func1();func2();" value="Call2Functions" /> 

或者,在你的JS像這樣:

document.getElementById('Call2Functions').onclick = function() 
{ 
    func1(); 
    func2(); 
}; 

或者,如果你的onclick程序分配一個,並不能確定是否以前存在的onclick(並且不希望覆蓋它):

var Call2FunctionsEle = document.getElementById('Call2Functions'), 
    func1 = Call2FunctionsEle.onclick; 

Call2FunctionsEle.onclick = function() 
{ 
    if(typeof func1 === 'function') 
    { 
     func1(); 
    } 
    func2(); 
}; 

如果您需要在元素的範圍內運行的功能,其中,W如點擊,一個簡單的使用申請的可以由:

document.getElementById('Call2Functions').onclick = function() 
{ 
    func1.apply(this, arguments); 
    func2.apply(this, arguments); 
}; 
10

現代事件處理方法:

element.addEventListener('click', startDragDrop, false); 
element.addEventListener('click', spyOnUser, false); 

第一個參數是事件,二是功能和第三指定是否允許事件冒泡。

QuirksMode

W3C的DOM 2級事件規範還得注意傳統模式的問題。它提供了一種簡單的方法來爲一個元素上的同一事件註冊儘可能多的事件處理程序。

W3C事件註冊模式的關鍵是方法addEventListener()。你給它三個參數:事件類型,要執行的函數和布爾(真或假),稍後我會解釋它。要註冊一個元素的onclick我們熟知的doSomething()函數,你這樣做:

這裏充分的細節:http://www.quirksmode.org/js/events_advanced.html

使用jQuery

,如果你使用jQuery,有事件處理一個很好的API:

$('#myElement').bind('click', function() { doStuff(); }); 
$('#myElement').bind('click', function() { doMoreStuff(); }); 
$('#myElement').bind('click', doEvenMoreStuff); 

全部細節在這裏:http://api.jquery.com/category/events/

+0

我不能在這個模型記住,是你完全表現出跨瀏覽器兼容,還是有擔心在這方面要考慮的代碼? **編輯:**根據您的編輯,我會補充說,我永遠不會記得addEventListener模型及其含義,因爲我總是使用jQuery。 – JAAulde 2011-05-04 11:07:07

+1

當然,如果您查看舊版瀏覽器,有一些注意事項,但如果您使用jQuery來處理它,那麼您很安全。 – 2011-05-04 11:09:13

+0

得到了你。看到我的評論編輯。 :) – JAAulde 2011-05-04 11:10:04

2
<input type="button" onclick="functionA();functionB();" /> 

function functionA() 
{ 

} 

function functionB() 
{ 

} 
1

嗨,

您也可以像下面......這樣一來,你的這兩個函數應該調用,如果這兩個函數返回true,那麼它將返回true,否則返回假。

<input type="button" 
    onclick="var valFunc1 = func1(); var valFunc2 = func2(); if(valFunc1 == true && valFunc2 ==true) {return true;} else{return false;}" 
    value="Call2Functions" /> 

謝謝 維沙爾帕特爾

相關問題