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 に答える