我使用textbox
动态地将“已禁用”属性添加到jQuery
输入字段。但是查看生成的HTML
,它在我已将“已禁用”属性添加到的textbox
输入字段中不可见。
因为它没有添加到它,我的其他jQuery函数永远不会被输入。
这是我的代码:
这发生在doc load事件中的某些位置:
$('.testGroup :input').prop('disabled', true)
此功能会在您click
或hover
禁用输入时显示工具提示:
$('input:disabled').after(function (e) {
debugger;
d = $("<div>");
i = $(this);
d.css({
height: i.outerHeight(),
width: i.outerWidth(),
position: "absolute",
})
d.css(i.offset());
d.attr("title", i.attr("title"));
d.tooltip();
return d;
});
我已使用/尝试了prop()
和attr()
,但没有使用after()
函数。
根据Paul Rosania,我应该使用prop()
。
还有另一种方法可以实现这个目标吗?
编辑:jsFiddle
答案 0 :(得分:1)
问题是添加工具提示的代码仅在DOM准备好后运行一次。 您需要为您禁用的每个元素调用它。
一个简单的解决方案是为您的工具提示编写一个方法:
function AddToolTip() {
d = $("<div>");
i = $(this);
d.css({
height: i.outerHeight(),
width: i.outerWidth(),
position: "absolute",
})
d.css(i.offset());
d.attr("title", i.attr("title"));
d.tooltip();
return d;
}
然后,使用此方法将工具提示应用于在DOM ready上禁用的元素
$('input:disabled, button:disabled').after(AddToolTip);
在禁用输入元素时,再次调用该方法
$('#test').prop('disabled', true).after(AddToolTip);