web-dev-qa-db-ja.com

Ajaxを使用してビューでフォームを送信した後、jQueryスクリプトを再ロードするにはどうすればよいですか?

B.E.Fを使用してajaxを有効にしたビューがあります。一部のコンテンツをフィルタリングします。これらのフィルターを送信すると、jqueryスクリプトが機能しなくなります。 ajaxで送信ボタンを使用した後、これらのスクリプトをリロードする方法の答えを見つけるのを手伝ってください。私はこのようなことをして、それをtemplate.phpのdrupal_add_jsを使用して単純なスクリプトとしてロードしようとしました:

Drupal.Behaviors.reload = function (context) {
jQuery(".form-submit").submit(function() {
  jQuery("table").stickyTableHeaders();
});
}

このコードはほとんど機能しないことを知っていますが、それでもDrupal.Behaviorsは未定義であるとFirebugは言います。

3
Rootical V.

あなたがこのようにJSコードを書いた場合。

(function ($) {
  Drupal.behaviors.tableStickHeaders = {
    attach: function(context, settings) {
      $("table").stickyTableHeaders();
    }
  };
})(jQuery);

必要に応じて自動的に再適用されます。これは、Drupal用のJavaScriptを作成する場合に推奨される方法です。

2
googletorp