0

ここで求めていることを達成する必要がある理由は、少し複雑です。なぜなら、私はすでにいくつかの jQuery が進行中の CMS で作業しているためです。しかし、基本的には、ユーザーがリンクをクリックするか、ドロップダウンから選択するときに 2 つの関数を呼び出す必要があります (どちらも同じことを行いますfoo()) bar()

ユーザーがクリックしたときに動作させることができます:

$('.links').on("click", "a", function() {
    $(".dropdown select").change();
    bar();
    return false;
});

$(".dropdown select").change(function() {
    $("select option:selected").each(function () {
        foo();
    });
});

change()問題は、イベントの後に bar() を呼び出す必要があることです。bar()change() イベント内で呼び出すことはできません。ユーザーがクリックしても問題ありません。bar()しかし、から直接呼び出す方法がわかりませんchange()が、すべてchange()が完了したときです。

何らかのコールバックを追加する方法はありますchange()か? いくつかの異なる構文を試しましたが、理解できませんでした。

4

1 に答える 1

1
$('.links').on('click', 'a', function(){
   myFunc(); 
   return false;
});
$('.dropdown select').on('change', myFunc);

function myFunc(){
  $('select option:selected').each(function(){
    foo();
  });
  bar();
}

この動作を処理するために3番目の関数を追加してみませんか?(そして、!によって処理される無名関数を削除できるため、技術的には同じ量の関数呼び出しを保持しselect changeます)

于 2012-11-22T21:16:26.727 に答える