2016-04-12 48 views
0

仅用于上下文,这发生在我的WordPress管理区中,但它并不是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.editinlineedit-65只存在。但是,tr#edit-65没有创建我的jQuery上面,但由WP自己的jQuery代码,我没有访问。

所以,我的问题是,我怎么能添加一个类到我自己的jQuery块加载后创建的元素?是否有可能检测何时成功加载/创建元素edit-65,然后只有将我的自定义类添加到它?

回答

1

试试这个:当你没有在创作元素的控制,你可以做一个工作中使用的setInterval各地,并检查是否元素创建然后设置类和退出。

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

创建一个间隔来定期检查元素的存在。并在完成后清除间隔:

<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