【发布时间】:2012-07-12 04:17:05
【问题描述】:
我在我的新项目中使用了两个 jQuery 插件:
$("input[type=text].color").miniColors();
$("input[type=file], input[type=radio], input[type=checkbox], select").uniform();
在这个项目中,我有多个使用 jQuery 动态构建的上传表单 - 我有一个隐藏容器 <div>,其中包含多个表单元素。根据用户的选择,使用html() 函数将所需元素添加到表单中。
用户可以使用标签在多种类型的表单之间切换(Twitter Bootstrap)。
我注意到插件在这些表单元素上无法正常工作。
是否有可能将函数绑定到具有live() 函数的表单或有其他方法吗?
** 编辑 ** 正在使用以下功能构建表单:
function buildForm(target)
{
var form = $("#" + target);
switch(target){
case 'image':
form.html($("#wrapper-title").html() + $("#wrapper-src").html());
break;
case 'generate':
form.html($("#wrapper-title").html() + $("#wrapper-src").html() + $("#wrapper-generate").html());
break;
case 'video':
form.html($("#wrapper-title").html() + $("#wrapper-url").html());
break;
case 'text':
form.html($("#wrapper-title").html() + $("#wrapper-body").html());
break;
}
}
所有元素都放置在表单之外,并在用户更改表单类型时在<form> 标签之间移动。
什么不起作用?例如,在 Uniform 插件中,单选/选择按钮的状态没有改变(图形没有改变)。
干杯!
【问题讨论】:
-
需要更多信息,一些代码会很好,关于你期望发生的事情没有发生。
-
除非涉及事件,否则事件委派不起作用。相反,在生成元素时初始化这些插件。
-
@jeffery_the_wind - 更新了问题
-
@Kevin B - 我调用了 buidlForm() 函数两次 - 在页面加载时(如果有错误的表单)以及在每次更改
type输入之后。你有什么建议来解决我的问题? -
初始化 buildForm 方法内部的插件,在 switch/case 语句之后,只针对新添加的表单。
标签: jquery jquery-plugins