-1

jquery 1.3.2 を使用しており、自分のニーズに合わせてカート モジュールを変更しています。私が探しているべきだと思う関数を見つけました。

function ajaxCartReloadCartView() {
  if (jQuery('#cart-form-pane').length) { 
    jQuery('#cart-form-pane').parent().load(Drupal.settings.uc_ajax_cart.SHOW_VIEW_CALLBACK, ajaxCartReloadCartViewSuccess );
  }
}

関数 ajaxCartReloadCartViewSuccess の前後にコードを挿入することはできますか? たとえば、このコード $("#cart-block-contents-ajax").removeClass("xxx"); を挿入する必要があります。

4

1 に答える 1

0

最も簡単な方法は、関数をクロージャーでラップすることです。このような:

function ajaxCartReloadCartView() {
  if (jQuery('#cart-form-pane').length) { 
      jQuery('#cart-form-pane').parent().load(Drupal.settings.uc_ajax_cart.SHOW_VIEW_CALLBACK, 
          function (response,status,xhr) {
             $("#cart-block-contents-ajax").removeClass("xxx");
             ajaxCartReloadCartViewSuccess(response,status,xhr);
             // some other code
          });
      }
  }
}

この方法では、元のajaxCartReloadCartViewSucces関数を変更する必要はありません。

編集: この成功関数で正確に何を処理しているのかわかりません。jQuery ドキュメントからこれらのパラメーター (応答、ステータス、xhr) を取得しました。

于 2012-11-30T19:25:41.120 に答える