Jer*_*nch 9 ajax drupal drupal-7
来自http://drupal.org/node/953016的 X帖子
Drupal 7 AJAX系统非常棒,它可以非常顺利地用于表单甚至链接.
我无法弄清楚如何以一种理智的方式做的是从javascript调用它.我可能想要一个没有表单的动态页面,并且作为其中一部分进行Drupal ajax调用,特别是使得ajax命令在返回时运行.
到目前为止,我发现最有效的方法是:
dummy_link = $('<a href="'+uri+'" class="use-ajax">Loading Vars</a>');
$(vars_div).append(dummy_link);
Drupal.attachBehaviors(vars_div);
dummy_link.click();
Run Code Online (Sandbox Code Playgroud)
这是有效的,但是一个巨大的黑客.我没有找到一种方法来执行ajax调用并让Drupal ajax框架执行它,而不是标准的jquery框架.
我原本以为有可能直接调用drupal ajax api,有谁知道怎么样?
简短的简短回答是你想让自己得到类似的东西:
$.ajax(ajax.options);
Run Code Online (Sandbox Code Playgroud)
这是jQuery的一部分,但是有一组选项可以帮助你在成功处理,效果等方面融入Drupal Goodness.这就是你在"巨大的黑客"示例中对你有用的东西.
以编程方式创建一个新的Drupal.ajax函数仍然需要一个合成元素:
base = 'someid'
element = $('<a href="'+uri+'" class="use-ajax">Loading Vars</a>');
element_settings = {'url': uri, 'event': 'click'}
myAjax = new Drupal.ajax(base, element, element_settings)
Run Code Online (Sandbox Code Playgroud)
但是,您至少可以在不模拟UI中的点击的情况下触发它:
myAjax.eventResponse(element, 'click')
Run Code Online (Sandbox Code Playgroud)
感觉应该有更好的方法来做到这一点,但它需要另一种方法来设置不需要DOM元素的初始ajax原型.因为这么多的交互集取决于如何将数据移回DOM,我不认为这个用例得到了很好的支持.
它也有可能直接去jQuery的一个适当的设置选项,并得到你想要的效果,但Drupal.ajax protoype功能自我参照了不少这样做没有Drupal.ajax类似乎冒险.
归档时间: |
|
查看次数: |
4018 次 |
最近记录: |