【发布时间】:2015-03-26 00:34:11
【问题描述】:
我有 jQuery 脚本:
$("input:not(':input[type=button], :input[type=submit], :input[type=reset]'), textarea").each(function () {
var Input = $(this);
var default_value = Input.val();
$(Input).on("focus", function() {
if(Input.val() == default_value) Input.val("");
}).on("blur", function() {
if(Input.val().length == 0) Input.val(default_value);
});
});
如果输入已经在 html 上,它可以正常工作,但是如何使它在动态添加的输入上工作?
第一个想法是改变:
$(Input).on("focus", function()
到
$(document).on("focus", Input, function()
但没有运气。
更新
我想我找到了让它在任何输入上正常工作的方法:
$(document).on("focus", "input:not(':input[type=button], :input[type=submit], :input[type=reset]'), textarea", function(e) {
if (e.target.value == e.target.defaultValue) {
e.target.value = "";
}
}).on("blur", "input:not(':input[type=button], :input[type=submit], :input[type=reset]'), textarea", function(e) {
if (e.target.value == "") {
e.target.value = e.target.defaultValue;
}
});
【问题讨论】:
-
你需要在创建新元素之后把它... 可以分享一下是怎么做的
-
点击“添加”链接,当关注新输入时:jsfiddle.net/r3ag5bL8/1 只有第一个输入会删除焦点上的文本。
-
不,只有第一个输入会删除焦点上的文本。
标签: jquery input focus dynamically-generated