将脚本绑定到动态创建的元素

时间:2016-10-06 01:17:05

标签: jquery placeholder polyfills shim

我需要支持占位符属性回IE8。我传统上发现这个脚本非常适合这样做:

https://github.com/parndt/jquery-html5-placeholder-shim/blob/master/jquery.html5-placeholder-shim.js

但是它不会绑定到动态创建的元素。因此,如果使用JS向页面添加新输入,则占位符将不起作用。

有没有办法将此脚本应用于动态创建的元素?

2 个答案:

答案 0 :(得分:1)

基本上......没有。

与大多数插件一样(不严格基于事件),您需要在创建新元素后初始化插件。

在现代浏览器中,您可以使用MutationObservers之类的东西,但您需要此插件的原因是支持旧浏览器,以便概念不会起作用

答案 1 :(得分:1)

调用jQuery.placeholder.shim();是否有效?这是在准备好/加载时调用的方法,因此可以做到这一点。

如果它没有,那么你可能至少不能直接使用当前形式的特定插件。你可以改变源来处理它。

它们是否在页面加载时动态生成?您可以简单地推迟加载插件,直到生成这些元素之后?

我唯一能做的其他远景是你可以在一个函数中包装插件并在每次输入生成后调用它吗?这可能会产生意想不到的副作用,但可能是一种廉价且令人讨厌的替代品。