標籤:

給一個按鈕的 onclick 事件綁定兩個函數,應該如何控制觸發的先後順序?

如:onclick="getCc();productAddToCartForm.submit(this);" 每次都是先執行getCc(); 再執行productAddToCartForm.submit(this);


  • 思路一:onclick 是一個事件,所以可以把兩個動作寫到一個 onclick 觸發的函數中去,這樣控制起來就更加方便;
  • 思路二:分別給按鈕以及它的父元素(可以只是在外面當 wrapper 的父元素)綁定 onclick 事件,然後根據不同的邏輯,選擇事件的觸發方式。
    • 冒泡(bubbling):先子後父;
    • 捕捉(capturing):先父後子;
    • 通過 element.addEventListener("click",doSomething2,bool) 中的 bool 來控制(true for 捕捉, false for 冒泡),參考 http://www.quirksmode.org/js/events_order.html

你想先調哪個就把哪個放前面唄~


自己實現事件存儲/綁定和解綁定方法. 不依賴瀏覽器機制.


推薦閱讀:

一名合格的前端工程師的知識結構是怎樣的?
如何在一個月之內從零基礎成為初級CSS前端開發工程師?
前端工程師是一個無關緊要的職位嗎?
前端現在怎麼這麼多人?
如何系統地學習Node.js?

TAG:JavaScript |