1

このオートサイズ機能を機能させようとしています。ページの読み込み前にテキストエリアを作成すると、正常に動作します。

$(document).ready(function(){
    $('.hellothere').autosize();  
});

ただし、ページがロードされた後でjQueryを使用してテキストエリアを作成すると、この関数にバインドされません。

4

6 に答える 6

2

できません.autosize()。新しく作成されたテキストエリアごとに呼び出す必要があります。これがイベントバインディングである場合は可能ですがdelegate()、プラグインを初期化しているため、実際に動作する要素が必要になります。

于 2012-09-11T07:36:44.223 に答える
2

新しく作成されたテキストエリアごとに .autosize() を呼び出す必要があります。

または、jquery プラグインである liveQuery を使用できます。これは優れたプラグインであり、新しく作成されたすべての要素に自動サイズを自動的に適用します。

http://docs.jquery.com/Plugins/livequery

于 2012-09-11T07:39:39.967 に答える
2

あなたはライブクエリを試すことができます

$(document).ready(function(){
    $('.hellothere').livequery(function() {
       $(this).autosize();
    });  
});
于 2012-09-11T07:40:05.050 に答える
0

ページにロードされていない要素をバインドするには、jQuery バージョンに関してこれらのいずれかを使用します。

 $("a.offsite").live("click", function(){ alert("Goodbye!"); }); // jQuery 1.3+
 $(document).delegate("a.offsite", "click", function(){ alert("Goodbye!"); }); // jQuery 1.4.3+
 $(document).on("click", "a.offsite", function(){ alert("Goodbye!"); }); // jQuery 1.7+

参照元:

http://api.jquery.com/live/

于 2013-04-03T06:57:20.940 に答える
0

.on()はあなたが探しているものだと思います:リンク

ライブ イベント ハンドラーをセレクションにアタッチします (まだ存在するかどうかに関係なく)。

$(function(){

    // Attach a listener to all paragraphs
    $('body').on(('click', 'p', function(event){
        $(this).css('color', 'blue');
    });

    // Dynamically add a paragraph
    $('body').append('<p>Hello World!</p>');

});

しかし、とにかく jQuery でテキストエリアを追加しているので、挿入した直後に.autosize()を呼び出さないのはなぜですか?

$('body').append('<textarea class="hellothere"></textarea>').autosize();
于 2012-10-08T22:26:15.357 に答える
-1

誰かが提供した回答の一部を使用して削除すると、これは機能します。

 $('.hellothere').live('click',function(){  $(this).autosize(); })
于 2012-09-11T07:44:32.180 に答える