2

私はこれをうまく機能させました:

$('#RCH'+r).on('click',function(e){$('#RSC'+r).find('.rct,.rcp').toggle();});

ただし、すべてのトグルの最後に、関数を呼び出したいrs(1);

計画1:コールバックをトグルに配置しようとしましたが、すべてがうまくいきません。

$('#RCH'+r).on('click',function(e){
  $('#RSC'+r).find('.rct,.rcp').toggle('',function(){rs(1);});
});

上記はrs(1)、クラスが出現するたびに関数を呼び出します(のようにeach)。また、通常発生することを元に戻すため、表示されていて非表示になっている場合.rcpは、まったく.rct逆のことが起こります。したがって、プラン1では、すべてがハンドバスケットで地獄に落ちます。

rs(1)プラン2:関数のトグルの後に入れてみました.on(以下のように)。

$('#RCH'+r).on('click',function(e){$('#RSC'+r).find('.rct,.rcp').toggle();rs(1);});

ただし、このメソッドrs(1)はトグルが終了する前に起動するため、rs関数はその役割を果たしません。

だから...rs(1);トグルが終了した後、どうすれば発砲できますか?

ありがとう。

4

2 に答える 2

3

さて、まず、.toggle()インスタントなので、実際にを使用していると仮定します.toggle(/* some duration */)。この場合、トグルアニメーションが完了した後に呼び出される関数を渡すことができます。

$('sel').toggle(/* duration */, function () {
  // ...
});

実際に使用している.toggle()、何らかの理由でコードが失敗する遅延がある場合は、次のことを試すことができます。

$('sel').toggle(0, function () {
  // ...
});
于 2012-04-17T10:30:17.257 に答える
0
$.when($('#RCH'+r).on('click',function(e){$('#RSC'+r).find('.rct,.rcp').toggle();}))
  .done(function(){rs(1);});

これを試してみてください、これがうまくいくことを願っています。

于 2012-04-17T10:34:34.550 に答える