1

JQueryの文字を数えるプラグインがありますtextareaappend("<textarea></textarea>")しかし、たとえば、実行時にテキストエリアを追加したとします。

追加された上でこのプラグインを実行する方法はtextarea?

$("textarea").charCount({
                        allowed: 200,       
                        warning: 30,
                        counterText: 'Characters left: '    
                });

実行時にテキストエリアを追加する..

$("#btnAddStep").click(function () {
                var text = "" +
                " <div class='row-fluid'>" +
                "   <div class='span10'>" +
                "      <input type='text' class='span12' placeholder='Type something…'>" +
                "  </div>" +
                " <div class='span2'>" +
                "    <div class='btn-group'>" +
                "        <button class='btn btn-mini' id='btnAddStep'><i class='icon icon-plus'></i></button>" +
                "        <button class='btn btn-mini'><i class='icon icon-minus'></i></button>" +
                "    </div>" +
                "  </div>" +
                " </div>" ;

                $("#response>#steps").append(text);
            });
4

2 に答える 2

0

jQuery SuperLive を調べてください。

著者によると:

jQuery SuperLive は私のお気に入りの新しいプラグインです。Allen Mackley と私はこれを作成して、大量の適用される JS の問題を解決しました。ページに要素がいつ存在しても機能するプラグインが必要でした。また、属性が追加された場合は、プラグインを再度有効にする必要がありました。

SuperLive はこれらすべてを行います。

これは IE では機能しません。つまり、ミューテーション イベントはサポートされていません。jQuery 1.7 も必要

デモビデオ: http://www.youtube.com/watch?v=mh5mGR2GyLY

ダウンロード: http://code.google.com/p/jquery-superlive/downloads/list

于 2012-07-29T03:08:01.807 に答える
0

テキストエリアを div に追加するために使用するボタンのクリック イベント ハンドラー内で、プラグインのメソッドへの呼び出しを追加します。

$(document).ready()コード全体を見ることができないので、プラグインは実行時にも自動的に aまたは同様の内部で呼び出されると仮定します。これが呼び出された後にテキストエリアを追加する場合は、プラグインを再実行する必要があります。

再度投稿したコードをクリック イベント コードに追加するだけで済みますが、効率を高めるために、すべてのテキスト エリアでプラグインを最初から実行するのではなく、テキスト エリアを検索する別のオプションを追加することをお勧めします。特定のクラスでプラグインを実行した後にそのクラスを削除します。このようにして、すべての新しいテキスト領域にこのクラスを与えることができ、プラグインがそれらで実行された後、それらは二度と見られなくなります。

幸運を!

編集: 私の友人が私の肩越しに見ていて、少し明確にすることを提案しました: プラグインを変更する必要はありません (確かに、私は完全なコードを見ることができないので、これを 100% 確信することはできませんが、 95% 確信していると言っておきましょう)。あなたがすることは、イベント ハンドラー (および document.ready で行われたすべての呼び出し - 技術的にはイベント ハンドラー) を次のように変更することです。

$("#buttonID").click(function() {
    ...your code...
    $("#placeToAddNewTextArea").append("<textarea class="newTA"></textarea>");
    $("textarea.newTA").charCount({ ......... });
    $("textarea.newTA").removeClass("newTA");
});

つまり、CSS をフラグとして使用し、プラグイン コードの外部でそれらをすべて作成、使用、および削除できます。

于 2012-07-28T21:36:36.257 に答える