2016-04-12 11 views
0

コンテキストの場合、これは私のWordPress Admin Areaで発生していますが、WP固有のものではありません。jQueryまだロードされていない要素にテキストを追加する

リンクをクリックすると、いくつかの子要素を持つ新しいDOM要素が作成されます。

<script type="text/javascript">   
    jQuery(document).ready(function($) {     
     $('tr#post-65 span.inline a.editinline').click(function() { 
      $('tr#edit-65').addClass('someclass'); 
     }); 
    }); 
</script> 

のでtr#post-65が常に存在するがa.editinlineがクリックされたときに、テーブルの行edit-65のみ存在します。私はそうのように、この新しい要素にクラス名を追加しようとしています。しかし、tr#edit-65で、私のアクセスできないWP独自のjQueryコードではが作成されていません。

私の質問は、自分のjQueryブロックがロードされた後に作成される要素にクラスを追加するにはどうすればいいですか? edit-65が正常にロード/作成され、の場合にのみがカスタムクラスを追加するのを検出することは可能ですか?

答えて

1

ことは、これを試してみてください。

jQuery(document).ready(function($) {  
     $('tr#post-65 span.inline a.editinline').click(function() { 
      var interval = setInterval(function(){ 
       if($('tr#edit-65').length) 
       { 
        $('tr#edit-65').addClass('someclass'); 
        clearInterval(interval); 
       } 
      }, 500); 
     }); 
    }); 

More Information on setInterval()

+0

ありがとう、それは完全に動作します。追加の情報リンクをありがとう。 – Kev

+0

お手伝いを喜んでください:) –

1

要素の存在を定期的に確認する間隔を作成します。そして行わ間隔クリア:あなたは要素の作成を制御することがないので、あなたがたsetIntervalを使って周りの作業を行うことができ、その後、作成した要素はクラスと終了を設定するかどうかを確認:

<script type="text/javascript">   
    jQuery(document).ready(function($) {     
     $('tr#post-65 span.inline a.editinline').click(function() { 
      var int = setInterval(function(){ 
        if($('tr#edit-65').length>0) 
         {$('tr#edit-65').addClass('someclass'); 
         clearInterval(int); 
         } 
      }, 100); 

     }); 
    }); 
</script> 
+0

助けてくれてありがとう。 – Kev