【问题标题】:Bizzare unresponsive Drupal jquery script奇怪的无响应 Drupal jquery 脚本
【发布时间】:2017-08-30 11:40:37
【问题描述】:

我有一个非常简单的 jQuery 脚本,它可以部分工作。

(function($) {
    console.log('Testing ...!');

    $('div').css('border', '2px solid red !important');
})(jQuery);

控制台命令成功响应,但向 div 添加彩色边框的简单尝试没有响应。

我正在通过以下代码将 js 脚本附加到 Drupal:

function cse_form_search_block_form_alter(&$form, &$form_state, $form_id) {
    $form['#attached']['js'][] = drupal_add_js(drupal_get_path('module', 'cse') .'/scripts/autocomplete.js', 'file');
}

我不知道为什么这个相当简单的脚本没有按预期工作。

【问题讨论】:

  • 我没有 drupal 开发经验,但如果控制台消息被记录但 div 没有边框,那么可能是某种竞争条件。也许这可以帮助你:coderwall.com/p/kd-4cg/…。您的代码处于 IIFE,但不能确保处于就绪状态。您可以尝试将逻辑放入 $(document).ready() 或进一步使用文章中描述的行为模式。
  • 问“请帮助我”的问题往往是寻求高度本地化的指导,或者在某些情况下,是不适合我们的问答形式的持续或私人帮助。它也相当模糊,最好用更具体的问题代替。请阅读Why is “Can someone help me?” not an actual question?

标签: jquery drupal-7


【解决方案1】:

你的 js 在 html 完全加载之前执行,所以它没有找到任何 div。 2个解决方案:

  1. jquery 之一:像 Samuil 建议的那样使用 $(document).ready()。
  2. drupal 的:使用一种行为,你应该花 5 分钟阅读这个链接,以更好地理解如何在 drupal 中使用 js:https://www.drupal.org/docs/7/api/javascript-api/managing-javascript-in-drupal-7

【讨论】:

    猜你喜欢
    • 2023-03-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-12
    • 1970-01-01
    • 2015-04-01
    相关资源
    最近更新 更多