【发布时间】:2013-04-18 08:02:17
【问题描述】:
我使用出色的 iCheck 插件在我的表单中设置复选框的样式。
使用该插件,我只需调用 $('input').iCheck() 即可应用所需的外观和功能。
但是,我坚持在动态创建的复选框上调用 .iCheck() 函数。
在 ajax 调用中,我在成功函数中按如下方式构建我的复选框;这是在 $.each 块中,但为了简单起见,我只在语句中包含代码。
var chk = $('<div><input id="' + n.ID + '" type="checkbox" name="lblChk"><label for="' + n.ID + '">' + n.Title + '</label></div>');
el.append(chk);
el 是 DOM 树中已经存在的 ID 为 container 的 div,n 是我以 JSON 形式返回的对象
在构建复选框后,我调用$('#container input').iCheck(); 显然除了标准复选框我没有什么特别的。我认为这是因为复选框是在调用 .iCheck() 之后动态创建的。但即使在我创建复选框并调用.iCheck() 之后,结果也是一样的。
有人可以指导我吗?
【问题讨论】:
-
查看底部答案并在此处发表评论:stackoverflow.com/questions/6068955/…。希望这会有所帮助。
-
@Yatrix 感谢您的回复,但您提到的是哪个答案?是带有 setTimeout() 选项的那个吗??
-
我在页面底部
-
是的,但这是一个非常肮脏的解决方案。您不知道 ajax 调用何时完成,因此调用 setTimeout 碰巧在成功或完成事件之前被调用是我不打算承担的风险:)
-
您找到解决方案了吗?如果没有,能否提供完整的代码?
标签: javascript jquery jquery-plugins icheck