【问题标题】:Is it a good practice to reload script files? [closed]重新加载脚本文件是一个好习惯吗? [关闭]
【发布时间】:2019-07-08 20:10:14
【问题描述】:

我正在使用typeahead.js 插件,该插件可用于向 HTML 输入框添加自动完成功能。

所以如果你加载脚本并执行

<input class="typeahead" type="text" id="partNumberInput" aria-describedby="enter Part Number" placeholder="Part Number"> 

该脚本将查找类 typeahead 的所有 DOM 元素,并添加一堆父元素并执行一些其他有助于提供自动完成功能的事情。

现在,我想使用带有typeahead 类的javascript append 动态添加输入框。由于typeahead 仅在页面开始加载时运行一次,因此它无法执行我之前提到的所有操作。

这是不是每次用户单击按钮以添加另一个带有typeahead 类的输入框时我都重新加载脚本的场景?

【问题讨论】:

  • 查看文档,看看是否有办法让它重新初始化。
  • 不需要重新加载脚本,您只需在新元素上调用.typeahead()。这意味着这个问题没有实际意义。
  • 我在 typeahead.js 文档中没有看到任何关于 class="typeahead"

标签: javascript html typeahead.js


【解决方案1】:

the examples 中的第一个示例展示了如何在页面中的任何元素上调用 typeahead。

您可以使用所需的任何类在目标元素上调用 typeahead,而不是依赖于将特定类放在元素上以便 typeahead 检测到它们。

例如,如果您有一个全新的元素,您可以动态地放入 DOM 中,并且它具有 whatever 类,那么您可以通过以下方式在该元素上加载 typeahead:

$('.whatever').typeahead({
  // your options here
}, {
  // more options here, see examples
})

您可能想重新加载脚本标签本身;这可能会对您的应用产生意想不到的(可能有害的)影响。

一般来说,$('.whatever').typeahead(...) 形式是您通常调用任何 jQuery 插件的方式,以便使用该插件对选择器指定的元素进行操作。

【讨论】:

    猜你喜欢
    • 2020-08-25
    • 2015-08-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-03-30
    相关资源
    最近更新 更多