focus()不适用于由javascript创建的输入

时间:2013-03-20 01:03:23

标签: javascript jquery onfocus jquery-1.4

我已经使用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');
});

2 个答案:

答案 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。

的更多信息