0

我已经通过使用javascript创建输入框并使用jquery将类分配给输入框然后尝试通过使用类名来使用focus()来创建一个html页面,但它根本不起作用。当我单击输入框时,不会弹出警报:(

有谁知道这里出了什么问题?我该如何解决这个问题?

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');
});
4

2 回答 2

1

以下代码:

$('.test1').focus(function () {
    alert('inside');
});

应该改为首先绑定#test

$('#test').focus('.test1', function () {
    alert('inside');
});

由于您仍在使用 jQuery 1.4.2;您需要使用.live()处理程序的方法。

代码应为

$('#test').live('focus', '.test1', function () {
于 2013-03-20T01:09:47.017 回答
0

如果您想为动态创建的内容添加处理程序,您需要在添加内容后添加处理程序,或者更常见的是,只使用事件委托。对于 jQuery,这意味着使用 .on:

$('.test1').on('focus', function () {
    alert('inside');
});

这是了解有关使用 .on的更多信息的文档。

于 2013-03-20T01:08:30.960 回答