2016-04-12 49 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