我创建基本上假货密码输入的输入暂时像这样:动态创建HTML元素失去属性在显示/隐藏
var fakeId = currentElement.attr("id") + "Fake";
var fakePasswordInput = $("<input>",
{
id: fakeId,
val: value,
type: "text",
class: cssClass
});
currentElement.after(fakePasswordInput);
我的问题是,当这种情况发生:
currentElement.blur(function() {
if ($(this).val() == "") {
$(this).hide();
var id = $(this).attr("id");
var val = elements["#" + id];
// have NO idea why, but it loses the CSS class AND the value.
$("#" + id + "Fake").show();
}
});
最后一行,$("#" + id + "Fake").show();
将愉快地显示该元素,但是它失去了它的CSS类和它所具有的值。为了解决这个问题,我做了以下工作:
$("#" + id + "Fake").val(val).addClass(cssClass).show();
这是一个黑客,我不喜欢。那么,为什么隐藏然后显示动态生成的HTML元素会失去其属性? (这发生在铬/ FF/IE)
EDIT
这是在一个单一的功能定义的。该cssClass
是正确的,在最高层,像这样宣称:
function formBlur(elements) {
var cssClass = "default_text_input";
如何在创建fakePasswordInput时获得cssClass和value? – 2012-08-06 09:35:32
编辑向您展示 – Kezzer 2012-08-06 09:57:38