2017-02-22 93 views
0

我想在一定時間後隱藏一個div,一旦它的加載和它的工作,當我在控制檯中這樣做,但它不工作時,我把這段代碼在實際的網頁。當我查看源代碼以及Jquery在控制檯上工作,但不在頁面上

(function ($) { 
    if ($('#insightera_widget_content').length) { 
    $('#insightera_widget_content').delay(10000).fadeOut('slow'); 
    } 
}(jQuery)); 

在div insightera_widget_content不能被看到,但我可以看到它的檢查器。它從一些外部小部件加載。

enter image description here 我也嘗試過使用下面的頁面,它根本不起作用。

<script> 
    $(document).ready(function() { 
    if ($('#insightera_widget_content').length) { 
    $('#insightera_widget_content').delay(10000).fadeOut('slow');} 
    }); 
    </script> 

有什麼建議嗎?

+0

我檢查出來,它的工作原理。你把jQuery加入你的腳本了嗎? –

+2

腳本很好,但是你在'#insightera_widget_content'不在頁面上運行它。加載內容後應該在回調函數中,好嗎? – skobaljic

+0

@skobaljic但它從一些第三方js文件加載。我不能在那裏改變任何東西。 – Neela

回答

2

設置一個setInterval()來檢查元素的存在性,一旦找到它,運行你的jQuery並清除間隔。

var interval = setInterval(function() { 
 
    if ($('#insightera_widget_content').length) { 
 
    $('#insightera_widget_content').delay(10000).fadeOut('slow'); 
 
    clearInterval(interval); 
 
    } 
 
}, 1000) 
 

 
/* you don't need this part - just simulating the widget adding the code to the page */ 
 
setTimeout(function() { 
 
    $('body').append('<div id="insightera_widget_content">insightera_widget_content</div>'); 
 
}, 5000);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

+0

如果你對我低估了,請告訴我這個答案有什麼問題,以便我可以改進並從我的錯誤中吸取教訓。 –

+0

工作正常。感謝您的幫助。 – Neela

+0

@Neela真棒,不客氣。 –

相關問題