0

私はJavascript/jQueryに少し慣れていないので、基本的なものが欠けている場合は、高度な謝罪をします。ユーザーが特定のクラスの要素を入力するたびにトリガーされる関数があります。

     $('.relevantClass').keyup(function(){
     //code...
     });

この関数は、状況によっては、メソッドをrelevantClass介した新しいインスタンスを含む大量の新しいHTMLを作成することになります。.append()

     var newHTML = <div class='relevantclass'>Content...</div>;
     $('#wrapper').append(newHtml);

ただし、ユーザーが新しく作成されたを入力すると、jQueryセレクターは関数を検出して実行しないようですrelevantClasses。新しく作成されたHtmlを確認しましたが、正しいクラスタグと関連するクラスの古いインスタンスがあります。

これは.append();DOMをいじることと関係があると思います。セレクターを「更新」し、jQueryでDOMを調べて新しいクラスを見つける必要があります。これを行う方法について何か考えはありますか?見つからないjQueryメソッドはありますか?

4

3 に答える 3

4

on()動的コンテンツで機能するイベントを添付するには、を使用する必要があります。

var $parent = $("selector"); //the element you're appending .relevantClass to
$parent.on("keyup",".relevantClass",function(){
    //code...
});

動的コンテンツを操作relevantClassするには、ページの読み込み時に存在するの最も近い親にイベントを添付する必要があることに注意してください。

を使用する人もbodyいますが、動的コンテンツにできるだけ近い親要素の使用に慣れる必要があります。これは、イベントの委任が小規模で行われるようにするためです。

on() ここでより多くの情報。

newhtmlまた、変数が引用符で囲まれていることを願っています。

于 2012-08-05T07:16:04.833 に答える
0
$('.relevantClass').on('keyup', function(){
    //code...
});
于 2012-08-05T07:18:54.713 に答える
0

次のようなものを試してください

$('body').on('keyup', '.relevantClass', function() { ... }

アイデアは、既存のルート要素を使用し、クラスセレクターをフィルターとして使用することです。こちらの例をご覧ください。

于 2012-08-05T07:24:03.120 に答える