我們使用drupal 7 ajax框架來加載頁面上的內容。點擊鏈接時,在處理請求時鏈接後會出現一個跳動者。如何從drupal 7 Ajax鏈接中刪除throbber?
我無法找到有關如何設置或刪除throbber的文檔。在表單中它看起來非常簡單,但使用ajax鏈接和回調菜單項我找不到任何文檔。
我看到有一個$ settings變量可以傳遞給ajax_command_html函數,但我沒有看到任何文檔應該如何格式化。
我們使用drupal 7 ajax框架來加載頁面上的內容。點擊鏈接時,在處理請求時鏈接後會出現一個跳動者。如何從drupal 7 Ajax鏈接中刪除throbber?
我無法找到有關如何設置或刪除throbber的文檔。在表單中它看起來非常簡單,但使用ajax鏈接和回調菜單項我找不到任何文檔。
我看到有一個$ settings變量可以傳遞給ajax_command_html函數,但我沒有看到任何文檔應該如何格式化。
,當你建立你的表單項您需要定義「進步」屬性:
$mycheckbox=array(
'#type' => 'checkbox',
'#title' => 'Load it up',
'#ajax' => array(
'callback' => 'ajax_example_callback',
'wrapper' => 'checkboxes-div',
'effect' => 'slide',
'progress' => array('type' => 'none'),
),
);
你可以找到更多信息和示例here
有很多關於如何對FAPI處理的元素進行這些更改的文檔,但幾乎沒有關於如何處理鏈接的文檔。 – mirzu 2011-05-24 16:46:09
的確如此,正如mirzu提到的,如果你不使用FAPI,drupal_pre_render_link()是處理它的最好方式,實際上FAPI調用drupal_pre_render_link()來構建鏈接,所以你基本上只是跳到重要層,對於任何不熟悉的人來說,只需要將鏈接數組的格式設置爲與您打算讓其進行drupal呈現的任何其他html元素一樣,即:array('#href'=>'my_url','#title'=> 'my link title','#ajax'=> array('callback'=>'my_ajax_callback'));'等等 – Trey 2011-05-25 17:18:37
我找到了答案,以我自己的問題。需要了解的重要一點是,在Drupal 7中有兩種鏈接可以呈現的方式。第一種是使用舊的l()函數,另一種是使用渲染數組。 Drupal中的許多主題功能都使用舊式,並且在使用時不會穿過drupal_prerender_link()。這是什麼元素預處理,將設置從PHP傳遞到js層。
你可能只是隱藏通過設定顯示值的div.ajax正在進行中,活動指示器到無:
.ajax-progress-throbber {
display: none;
}
像CSS注射器(http://drupal.org/project/css_injector)模塊可能是有用的。
你能詳細說一下「throbber」是什麼嗎? ;-) – usr 2011-05-23 22:23:11
http://en.wikipedia.org/wiki/Throbber – mirzu 2011-05-24 16:44:08