javascript - 重新加载脚本文件是一个好习惯吗?
问题描述
我正在使用typeahead.js
可用于向 HTML 输入框添加自动完成功能的插件。
因此,如果您加载脚本并执行
<input class="typeahead" type="text" id="partNumberInput" aria-describedby="enter Part Number" placeholder="Part Number">
该脚本将使用该类查找所有 DOM 元素typeahead
并添加一堆父元素并执行一些其他有助于提供自动完成功能的事情。
现在,我想使用带有typeahead
. 由于typeahead
仅在页面开始加载时运行一次,因此它不会执行我之前提到的所有内容。
这是每次用户单击按钮以添加另一个带typeahead
类的输入框时我重新加载脚本的场景吗?
解决方案
示例中的第一个示例显示了如何在页面中的任何元素上调用 typeahead。
您可以使用所需的任何类在目标元素上调用 typeahead,而不是依赖于将特定类放在元素上以便 typeahead 检测到它们。
例如,如果您有一个全新的元素,您可以动态地放入 DOM 中,并且它具有 class whatever
,那么您可以通过执行以下操作在该元素上加载 typeahead:
$('.whatever').typeahead({
// your options here
}, {
// more options here, see examples
})
您可能想重新加载脚本标签本身;这可能会对您的应用程序产生意想不到的(可能有害的)影响。
通常,表单$('.whatever').typeahead(...)
是您通常调用任何 jQuery 插件的方式,以便使用该插件对选择器指定的元素进行操作。
推荐阅读
- javascript - 电子商务 | 加减号删除负数(min_value)
- java - 我应该如何输入以避免在我的代码中出现以下错误?
- python - 如何能够对字典和列表应用一些操作
- python - PyPDF2 Python 库的 .getNumPages() 方法将 pdf 中的总页数返回为 0
- docker - 澄清测试在管道中的位置
- c# - 如何通过表名从 dbContext 获取实体类属性名称?
- excel - 一个过滤多个切片器/表的切片器(Mac 友好的解决方案)
- docker - ModuleNotFoundError:没有名为“urllib3.packages.six”的模块
- c# - 如何对使用 XamlIslands 的 WPF 应用程序进行单元测试?
- c# - 为什么在 Serilog LoggerConfiguration() 中使用 .WriteTo.Debug?