1

私は私のプロジェクトでこのようなものを持っています:

<input onchange="doSomething();" .... />

<a href="url" ... ></a>

入力フィールドがフォーカスされているときに「a」リンクをクリックすると、ブラウザは URL に移動し、その後にイベント onchange が発生します。しかし、最初に関数「doSomething()」を実行してから、URLに移動したいと考えています。それをよりよく解決する方法は?

4

3 に答える 3

1

インライン JavaScript を削除し、jQuery を使用します。できれば、これらの要素にいくつかの ID またはクラスを追加して、それらをターゲットにすることをお勧めします。

$('input').on('change', doSomething);

$('a').on('click', function(e) {
     e.preventDefault();
     doSomething();
     document.location.href = this.href;
});

doSomething()それは完全に異なるため、非同期ではないと仮定します。

于 2013-06-28T16:49:10.433 に答える
-1

onchange イベントの代わりに、入力時に onblur を使用します。

<input onblur="doSomething();" type="text" />
<a href="http://www.google.com">Hello</a>

http://jsfiddle.net/Bhaarat/V3wT9 要件がjavascriptのみで満たされる場合、デモをテストしてから、なぜjqueryのオーバーヘッドを作成するのですか? 低評価の理由を教えてください

于 2013-06-28T16:50:20.930 に答える
-1

jQueryでこのようなことができます(テストされていません)

<a href="#">..</a>

$('a').click(function(){
    dosomething();
    $(this).attr('href', 'url');
});
于 2013-06-28T16:48:56.133 に答える