我有一个带有以下属性的简单输入元素:
<input id="InputPassword" type="password" value="Password" class="initClass"/>
为了为它设置跨浏览器占位符,我使用了testFocusBlur函数
function testFocusBlur(){
$('input').focus(function () {
if($(this).attr('type')=='text'){
var campoPassword=$(this);
replaceInputType(campoPassword[0], 'password')
}
}).blur(function () {
if($(this).attr('type')=='password'){
var campoPassword=$(this);
replaceInputType(campoPassword[0], 'text')
}
});
$('input').blur();
}
,在$(文件).ready事件:
以上工作正常但是,一旦设置了新的输入元素,并且我专注于它,初始的testFocusBlur函数就不再起作用了
请参阅:http://jsfiddle.net/4tRzs/2/
注意:我不想在输入中设置内联函数,例如onfocus =“....”
请帮助,谢谢。
答案 0 :(得分:0)
您需要使用jQuery中的on
函数
$(document).on("focus" , "input", function(){
...
}
on
是旧live
函数。 documentation
你的功能会有这样的东西:
function testFocusBlur(){
$(document).on("focus", 'input', function () {
if($(this).attr('type')=='text'){
var campoPassword=$(this);
replaceInputType(campoPassword[0], 'password')
}
})
$(document).on("blur", "input", function () {
if($(this).attr('type')=='password'){
var campoPassword=$(this);
replaceInputType(campoPassword[0], 'text')
}
});
}