2011-08-23 38 views
0

我在我的系統中集成了一個外部腳本,允許我的用戶在觀看視頻後收到點數。點擊鏈接後,彈出窗口會加載視頻。視頻完成後,會有一個回調「callback_on_conversion」。我需要隱藏按鈕,但這不是很容易。閱讀整合指南,我發現:如何重新加載頁面沒有破解代碼?

「這種異步行爲有一個限制:即 您可以在這些回調函數運行時,可能不能使用文件撰寫 功能將無法正常工作的JavaScript代碼代替,我們建議您在 使用DOM和jQuery的頁面中爲 創建/插入新元素(例如回退AdTags)。「

這是實際的腳本。再次,我不知道如何在視頻播放完畢後隱藏「a」鏈接。

 <script src="http://iframe.sponsorpay.com/javascripts/widget/v1/widgets.js" charset="utf-8"> </script> 
     <script type="text/javascript"> 

     var sp_object = new SPONSORPAY.Video.Iframe({ 
      api_host: 'iframe.sponsorpay.com', 
      asset_host: 'iframe.sponsorpay.com', 
      appid: 'xxxx', 
      uid: 'demouser', 
      width: '750', 
      height: '750', 
      display_format: 'bare_player', 
      callback_on_start: function() { alert('Video Ready'); }, 
      callback_on_conversion: function() { alert('finished'); }, 
      callback_no_offers: function() { alert('No video avabile.'); } 
     }); 

     sp_object.backgroundLoad(); 
</script> 

<a href="#" id="showvideo" name="showvideo" class="showvideo" onClick="sp_object.showVideo()">Load</a> 

我應該怎麼做才能防止代碼被破壞?謝謝!

+0

'$(「#showvideo」)。hide()'? – JMax

回答

2

jQuery有很多功能來操縱DOM樹。例如,這會選擇ID ='showvideo'的屬性並將其刪除。

$('a#showvideo').remove(); 

需要注意的是,如果有超過1個這樣的元素,只有第一個將採取,但你也可以選擇使用一個類:

$('a.showvideo').remove(); 
1

如果callback_on_conversion視頻結束後你可以叫只需用jquery隱藏它。​​

callback_on_conversion: function() { 
    $("a#showvideo").hide(); 
}; 
+0

Thanks @Lukad,但即使我插入之後的「a」html,它不會工作... –

+1

它應該工作,如果你定義它,就像你在'sp_object'初始化中那樣。 順便說一句,你有jquery安裝,是嗎? – lukad

+0

這裏的問題是'a'和'#'之間的空白。由於空間的原因,這會顯示爲'選擇所有具有showvideo的元素,這些元素都位於''元素內。這就像CSS(但jQuery有更多選擇)。 – Jochem

相關問題