如何将 javascript 应用于使用 append() 创建的元素?

Posted

技术标签:

【中文标题】如何将 javascript 应用于使用 append() 创建的元素?【英文标题】:How to apply javascript to element created with append()? 【发布时间】:2012-10-06 20:51:03 【问题描述】:

我有一个由 append() 出现的表单。表单包含需要用 js 调整的输入(自动完成功能)。 就是这样:

function addForm()     
<!-- function code here-->
...
html += '  <table class="form">';
html += '    <tr>';
html += '      <td>Entry product</td>';
html += '      <td><input type="text" name="product" value="" /></td>';
html += '    </tr>';
html += '    <tr>';
html += '    <td>&nbsp;</td>';
html += '    <td><div id="featured-product" class="scrollbox">';
html += '    </div>';
html += '    <input type="hidden" name="featured_product" value="" /></td>';
html += '    </tr>';
html += '  </table>';

$('#form').append(html);




$('input[name=\'product\']').autocomplete(
<!-- function code here-->

但自动完成功能不能以这种方式工作。据我了解,这是因为 append(html) 不会将 html 存储到 DOM。它适用于通常的 html 表单,但我不能这样。我需要按照描述创建表单。所以问题是: 如何将 js 应用于不在 DOM 中的元素? 或者如何使用 js 将这个元素执行到 DOM? 也许我需要使用另一个像 append() 的东西? 谢谢。

【问题讨论】:

【参考方案1】:

输入这段代码:

$('input[name=\'product\']').autocomplete(
 <!-- function code here-->
);

在附加 html 的代码之后。问题是当这个绑定被尝试时,DOM 不包含这些元素

您也可以使用.on 功能来应用此功能:

$('input[name=\'product\']').on("autocomplete",function()
 <!-- function code here-->
);

【讨论】:

以上是关于如何将 javascript 应用于使用 append() 创建的元素?的主要内容,如果未能解决你的问题,请参考以下文章

如何将一些样式应用于 JavaScript 的“节点”对象

将Google App Engine与Javascript客户端连接

如何将过滤器应用于照片并将其保存到数据库 php css javascript

如何将所有包含连字符/破折号(?)的类应用于任何 DOM 元素并将它们保存到 JavaScript 中的数组中?

如何保证轻应用脚本的安全

如何将第三方 JavaScript 库添加到 Meteor 应用程序?