2012-06-22 5 views
1

Drupal의 아약스 코드 완료시 사용자 정의 jquery 코드를 어떻게 실행할 수 있습니까?Drupal 양식 자바 스크립트 지연

컨텍스트는 양식을 표시하는 drupal 모듈입니다. 양식 구성 요소 중 하나는 다음 코드로 표시된 선택 목록입니다.

$form['selected'] = array(
'#type' => 'select', 
'#title' => t('add to sequence ...'), 
'#options' => $types, 
'#default_value' => $types['select'], 
'#description' => t('Select an option.'), 
'#ajax' => array(
    'callback' => '_ajax_selected_node_callback', 
), 

);

Drupal은 옵션을 선택할 때마다 _ajax_selected_node_callback을 올바르게 호출합니다. select 목록 ajax 콜백이 끝난 직후에 사용자 정의 jQuery 코드를 실행해야한다.

아무도 도와 줄 수 있습니까?

답변

1

한 가지 방법은 Drupal.settings를 사용하여 AJAX 콜백이 완료된 후 사용자 정의 JS 파일에 정보를 전달하는 것입니다. 당신은 같은 것

if (isset($form_state['values']['selected'])) { 
    drupal_add_js(array('MODULENAME' => array('selected' => $form_state['values']['selected'])), 'setting'); 
} 

및 사용자 정의 JS 파일 :

(function ($) { 

Drupal.behaviors.MODULENAME = { 
    attach: function(context, settings) { 
    // listen for select to change and get the value if it does 
    if (typeof settings.MODULENAME != "undefined" && typeof settings.MODULENAME.selected != "undefined") { 
     $value = settings.MODULENAME.selected; 
     // do something 
    } 
    } 
}; 

})(jQuery); 

을 나는 버그 위를 선택하지했지만 내 요점은 그래서 당신의 형태처럼 당신이 뭔가를 추가 Drupal.settings를 사용합니다.

+0

감사합니다. 그게 효과가있는 것처럼 보입니다. – sisko