0

以下では、クラスに挿入される最後の要素を追跡しようとしていますがp-msg-class、に動的に挿入される他の要素があるため、アラートが何度も表示されます.middle-ui,.flt-rt,.content-htp-msg-class動的に挿入された他のすべてのHTMLのみを追跡し、アラートを停止するにはどうすればよいですか?

  $('.middle-ui,.flt-rt,.content-ht').bind('DOMNodeInserted', function(event) {
     if($(this).find(".visitor-msg-cont").last().find(".p-msg-class").length > 0)
     {
        alert($(this).find('.visitor-msg-cont').last().find('.p-msg-class').last().html());
     }
  });
4

2 に答える 2

0

わかりました、このようなものが機能する可能性があります。追加された最後の要素のクラスを取得し、それが「p-msg-class」であるかどうかを確認します。

$('.middle-ui,.flt-rt,.content-ht').bind('DOMNodeInserted', function(event) {
    var newElement = $(this).find(".visitor-msg-cont").last().children().last().attr("class");
    if(newElement === "p-msg-class")        
    {
    alert($(this).find('.visitor-msg-cont').last().find('.p-msg-class').last().html());
    }
});

子要素がすべてdivまたはpになることがわかっている場合は、children(div:last)またはそのようなものを使用できます。

これが機能するかどうかはわかりませんが、正しい方向を示す可能性があります。

于 2013-03-26T15:01:16.027 に答える
0

あなたのhtml構造をもっと見なければ、質問に答えるのは難しいです。クラス.p-msg-classを持つ場合と持たない場合があるDOM要素を動的に挿入していると想定しています。

最後に挿入された.p-msg-class要素を検索する代わりに、挿入時にアラートをスローしませんか?このようなもの(テストされていない):

$('.middle-ui,.flt-rt,.content-ht').bind('DOMNodeInserted', function(event) {
    if($(event).target.hasClass('p-msg-class'))
    {
        alert($(event).target.html());
    }
});
于 2013-03-26T23:20:30.430 に答える