问题标签 [drupal-behaviors]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
3417 浏览

ajax - Drupal.attachBehaviors 不影响返回的 ajax 表单

我正在研究 Drupal 7,我有一个这样构造的表单

和一个 ajax 回调函数来添加新评论

这是我的 Javascript 将新创建的评论加载到 Div (ajax)

将视图内容返回给 jQuery 回调的 hook_menu

查看模板文件,我也在里面返回了一个新的表格

返回视图内容呈现良好,使用 Javascript 中的 Drupal.attachBehaviors,返回视图内容中的所有其他效果也可以正常工作。除了表单提交ajax。

有人可以帮忙吗?attachBehaviors 不适用于返回 ajax 表单。

非常感谢!

0 投票
1 回答
523 浏览

drupal-7 - Drupal 7:Drupal.behaviors 没有运行

我有一个正在创建的自定义模块,称为接触点。在 touchpoints.module 文件的顶部,我有以下内容:

然后在我的 touchpoints.js 文件中,我有以下内容:

据我了解,Drupal.behaviors 调用中的任何内容都应该在 DOM 完成加载时运行,类似于 $(document).ready 调用。但是,此代码没有被执行。只是为了确保我也在函数中设置了一个警报,并且它没有被触发。有没有我错过的步骤?

0 投票
1 回答
334 浏览

javascript - 加载 Ajax 内容后使用 jQuery

在将 ajax 内容添加到页面后,我无法实现对正在加载的 DOM 元素的影响。我的 console.log 打印出下面代码中显示的项目数,打印出 0,但是当我console.log($('.user-alert').length);在 firebug 上运行它时,它打印出 2,这是正确的,因为我在页面上填充了 2 个元素。

这是我的代码:

这是我试图定位的 html:

这是 ajax,还请记住,此代码来自贡献的 Drupal 模块,不应修改:

0 投票
0 回答
1109 浏览

jquery - Drupal 7 行为不起作用

我遇到了一个问题,Drupal 行为似乎适用于登录用户,但不是其他所有人,除非行为正在执行submit().

例如,这将不起作用。

这确实有效。

0 投票
1 回答
63 浏览

jquery - 通过 jQuery 向 Drupal 字段添加类输出错误循环

我根据该字段的内容向该字段添加一个类,因此我可以根据内容对每个字段进行不同的样式设置。想象一下汉堡评分从 1 到 10...我想用一张图片替换评分,另外一张图片表示两个...等等。

为此,我需要每个字段类来反映字段内容。这是我正在使用的代码:

这会将字段的内容输出为我可以设置样式的类。然而,在一个博客视图中,例如页面上的三个帖子,当我想要每个字段实例的每个特定字段内容时,此代码将所有三个类添加到所有三个字段。

我得到的是:

代替:

我想我需要让它与 .this() 或 .each() 一起工作,但我无法让它工作。

有什么帮助吗?谢谢。

0 投票
1 回答
1499 浏览

javascript - 在 Forms API 中单击按钮后防止 Drupal 的页面刷新

我已经开始在 Drupal 中开发一个模块。我制作了两个表单控件:一个字段集和一个按钮。该按钮在单击时会调用 javascript 函数“myphoto_options”。此功能仅执行警报功能。执行调用的函数后,页面立即刷新页面。如何防止页面重新加载?

以下是我的代码:

Javascript函数:

任何帮助将不胜感激。谢谢。

0 投票
0 回答
38 浏览

javascript - 使用下拉列表时出现 jquery prev 问题

这是我在这里的第一个问题,因此任何提出更好问题的方向都值得赞赏,当然任何帮助更是如此。:-)

我正在使用 Drupal 行为和 jquery 来设置长表单的导航。(表单是使用 entityform 创建的)

我有三个下拉菜单(一个在顶部,一个在侧栏中,一个在表单下方),用户可以使用它们从一个“页面”导航到另一个。底部的下拉菜单还包括上一个和下一个按钮。

我的问题是所有底部下拉菜单以及上一个和下一个按钮都无法正常工作。问题如下:

  • 从底部下拉列表中选择元素时,它不会更改内容(添加和删除类hidden)。顶部和侧面下拉栏有效
  • 单击下一步时,我将进入下一页。但是,当我单击 prev 时,我被带到了第一页,并且 next 按钮也不再起作用。

我试图创建一个JSfiddle它具有正确的 HTML 标记,但我无法让 JS 工作,可能是因为它是为 drupal 行为而制作的。现场版本可以在这里找到。我已经尝试使用 prevAll() 和 nextAll(),而不是 prev() 和 next(),但没有得到任何改进。我很困惑为什么底部的下拉菜单在其他下拉菜单中不起作用。

html标记

在页面加载时运行一次以设置开始条件的 jquery

jquery改变下拉事件

点击按钮的jquery

提前谢谢你的帮助!

0 投票
1 回答
97 浏览

javascript - 具有多个 js 文件的 Drupal 7 jQuery 行为

我有一个基本问题,但我还没有找到任何令人满意的答案。我必须承认,我并没有真正理解行为的概念。我的理解是它更灵活,jQuery(document).ready因为它可以多次触发(例如用于 ajax 刷新)。但它并不总是像方面那样工作,尤其是在处理多个 jQuery 文件时。

我的具体问题:我有多个 js 文件附加到我的 drupal 站点。一些附加到表单,一些通过模块中的 drupal_add_js 附加,一些附加到自定义块等。所有 js 文件如下所示:

除了一个 js 文件在某些​​页面上不起作用(在大多数情况下它可以工作,但在节点页面上[用页面模块结构化])之外,一切都可以工作。

但我不太确定如何命名这些行为。它们应该具有相同的名称还是不同的名称?当我更改名称 ( THEMENAME) 并提供唯一名称(例如相应的模块)时,大多数 js 不再起作用,但仅适用于某些页面的那个现在适用于每个页面。

我应该如何命名它?不同的 js 没有依赖关系,它们大多是简单的切换、显示、隐藏和 css 操作。

0 投票
0 回答
134 浏览

d3.js - d3js 树崩溃后 Drupal 点击事件丢失

Drupal 7 中的 d3js(v4 和 v3)图表,点击事件附加到 svg 文本元素之一,使用.attr("class", "ajax_button")并附加该元素的 Drupal 行为。问题是一旦树被折叠并且不会在展开时重新附加,点击事件就会丢失。
链接:d3js + Drupal 行为
以下是点击元素的代码

0 投票
1 回答
17 浏览

drupal - 在 Drupal 行为中触发调用无限次

我想删除除了选择框中的一个选项之外的所有选项,并根据最后一个选项触发 onchange。我看到触发器无限次调用。以下是我的代码: