'first、second'の順に実行されます。私は最初に実行されると最後に必要です。jQueryイベントチェーン - スタックからキューへ
function first(){ alert('first') }
function second(){ alert('second') }
$('input').click(first).click(second);
'first、second'の順に実行されます。私は最初に実行されると最後に必要です。jQueryイベントチェーン - スタックからキューへ
function first(){ alert('first') }
function second(){ alert('second') }
$('input').click(first).click(second);
短い回答:これはできません。
praxisブラウザでは、割り当てられた順序でイベントが実行されますが、常に実行するとは信用できません。キャンセルは、使用しているイベントモデルによって異なります。レベル1(onclick = "...")では、イベントバブルのキャンセルは直ちに有効になり、それ以降のハンドラは実行されません。これは、jQueryが使用するLevel 2(Element.addEventListener)では当てはまりません。要素に登録されたすべてのハンドラは、伝播が停止する前に常に起動されます。
私の意見では、複数のハンドラ関数を順番に実行することに依存するが、割り当てのシーケンスを制御できないものを書く場合は、アプローチを再考する必要があります。
しかし、これを行う必要がある場合、必要な要素をすべて取り除き、必要な要素をすべて取り除いて、目的のシーケンスを取得することができます。あなたは特定の要素のイベントのリストを$.data(someelement, 'events')
で取得し、それらのイベントをフロントにプッシュした状態でun /再割り当てすることができます。
ハンドラを逆の順序で追加してみませんか? – tvanfosson
どう思いますか?多分私はそれをすることはできませんか? –
あなたの問題は何ですか?あなたの質問は何ですか、具体的にご記入ください。 –