我已经使用javascript创建了一个html页面来创建输入框,并使用jquery将类分配给输入框,然后尝试使用类名来使用focus(),但它根本不起作用。当我点击输入框时,不会弹出警报:(
有谁知道这里出了什么问题?以及如何解决这个问题?
html页面:
<table border="0" width="800">
<tr>
<td align="center">
<div id="test">
</div>
</td>
</tr>
</table>
的javascript:
htmlValue = "<input maxlength='4' size='2' type='text' id='startTime_1' value='" + startTime + "' />";
$("#test").html(htmlValue );
$('#startTime_1').addClass('test1');
$('#test1').focus(function () {
alert('inside');
});
答案 0 :(得分:1)
以下代码:
$('.test1').focus(function () {
alert('inside');
});
应该首先将绑定到#test
。
$('#test').focus('.test1', function () {
alert('inside');
});
因为你还在使用jQuery 1.4.2;您需要使用.live()
方法处理程序。
代码应为
$('#test').live('focus', '.test1', function () {
答案 1 :(得分:0)
如果要为动态创建的内容添加处理程序,则需要在添加内容后添加处理程序,或者更常见的是,只使用事件委派。对于jQuery,这意味着使用.on:
$('.test1').on('focus', function () {
alert('inside');
});
以下documentation了解有关使用.on。
的更多信息