gpt4 book ai didi

ajax - 以编程方式使用 Drupal7 AJAX 优点

转载 作者:行者123 更新时间:2023-12-04 04:13:49 27 4
gpt4 key购买 nike

X 来自 http://drupal.org/node/953016 的帖子

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();

这是有效的,但一个巨大的黑客。我还没有找到一种方法来执行 ajax 调用并让 Drupal ajax 框架来完成它,而不是标准的 jquery 框架。

我原以为可以直接调用drupal ajax api,有人知道怎么做吗?

最佳答案

简短的回答是,您需要让自己做到以下几点:

$.ajax(ajax.options);

这是 jQuery 部分,但有一组选项可以帮助您在成功处理、效果等方面融入 Drupal 的优点。这实际上是在您的“巨大黑客”示例中为您带来的好处。

以编程方式创建一个新的 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)

但是您至少可以在不模拟 UI 中的单击的情况下触发它:
myAjax.eventResponse(element, 'click')

感觉应该有更好的方法来做到这一点,但它需要另一种方法来设置不需要 DOM 元素的初始 ajax 原型(prototype)。因为很多交互集都取决于如何将数据移回 DOM,所以我认为这个用例还没有得到很好的支持。

也可以使用一组适当的选项直接进入 jQuery 并获得您想要的效果,但是 Drupal.ajax 原型(prototype)函数自我引用相当多,所以在没有 Drupal.ajax 类的情况下这样做似乎有点冒险。

关于ajax - 以编程方式使用 Drupal7 AJAX 优点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4042535/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com