如果我錯了,糾正我,但在我看來,jQuery事件處理與javascript事件處理完全分離。我知道執行jQuery和JavaScript事件處理程序本身的順序是未定義的,但是可以假設所有JavaScript處理程序都將在jQuery之前執行?關於(內聯)javascript事件處理程序執行jquery事件處理程序的順序
在example給出的答案這question似乎是這種情況。
此外,是否有任何優先執行內聯JavaScript事件處理程序方面的綁定?
爲了澄清,我問了這一切,因爲我遇到了一個問題,我有onClick
事件調用一個封閉形式的submit()
方法的<a>
元素的內聯事件處理程序。在提交表單之前,我想動態地將一些隱藏的inputs
添加到表單中。現在我這樣做:
var preSubmit = function preSubmit()
{
// add inputs
}
var oldSubmit = form.submit;
form.submit = function newSubmit()
{
preSubmit();
oldSubmit.call(form, arguments);
}
但我真的不知道是否有一個更優雅的方式,我真的很需要這方面的一些澄清。從你的問題的細節
_「我知道,執行的jQuery的順序和JavaScript事件處理程序本身是不確定的」 _ - 不,用jQuery綁定的所有事件處理程序將在它們綁定的順序執行(綁定時到一個特定的元素 - 與委託處理程序,你必須允許冒泡),因爲jQuery爲你管理這個。但jQuery仍然是JavaScript,它仍然使用'addEventListener()'(當瀏覽器擁有它時),所以非jQuery處理程序和jQuery處理程序的順序將是不確定的。 – nnnnnn 2013-06-18 12:39:04