Revision of Drupal7.x javascript function after ajax - ajax invoke from Tue, 2012-11-06 23:44

初探 Drupal 中使用 ajax 之後
使想在 AJAX complete 之後執行一些自定義的 javascript

例如ajax form submit 之後 slideUp form
submit 之後需要修改某些內容

使用的是 ajax callback 的command, 加上 ajax_command_invoke
Form array:

<?php
  $form
['actions']['submit']['#ajax'] = array(
   
'callback' => 'example_callback',
   
'wrapper' => 'field-wrapper',
   
'method' => 'append',
   
'effect' => 'slide',
  );
?>

callback:

<?php
function example_callback($form, $form_state) {
 
$commands = array();
 
$commands[] = ajax_command_prepend(NULL, theme('status_messages'));
 
$commands[] = ajax_command_invoke('.field-form', 'slideUp', array(2000));
  return array(
'#type' => 'ajax', '#commands' => $commands);
}
?>

ajax_command_invoke 可以對 selector 執行一個函數
第三個參數是一個 array, 是傳給函數的參數

ref:
http://api.drupal.org/api/drupal/includes%21ajax.inc/group/ajax/7
http://api.drupal.org/api/drupal/includes%21ajax.inc/function/ajax_comma...

Google