我創建基本上假貨密碼輸入的輸入暫時像這樣:動態創建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