2011-07-28 164 views
1

我在等待加載到播放器,但如果我這樣做 -如何檢查對象是否存在?

$("#vPlayer").load(function() { 
    alert('yay'); 
}); 

什麼都沒發生 - 如果我使用if語句.length > 0它的工作原理(如果我設置的延遲幾秒鐘,以便有時間爲視頻加載)...如果我沒有延遲,顯然它不工作,因爲在腳本運行時視頻不加載...

所以有沒有辦法使用.length與.load?

+0

我不確定除了'document'實際上是否觸發了一個加載事件。我很好奇,如果其他事情,但它肯定會有用。 – Endophage

+0

vPlayer是什麼類型的對象?它閃光嗎? – jfriend00

+0

@Endophage - 圖像有一個加載事件,jQuery在其他幾種類型的對象上模擬它,但它不適用於所有類型的對象。 – jfriend00

回答

0

此代碼對我沒有意義。 .load()函數至少需要一個傳遞給它的參數(要加載的URL)。然後,除此之外,如果需要,可以傳遞一個完成函數。但是,通過閱讀jQuery documentation for .load(),第一個參數必須是URL。

$("#vPlayer").load(urlToLoad, function() { 
    alert('yay'); 
}); 

另外,我不明白你在說什麼有關。長度> 0。如果你提供使用,也許我們可以對此發表評論的代碼示例。

好的,已經指出在jQuery中存在不同的重載形式的load(),它應該通知一個對象現在被加載(圖像,腳本,框架,iframe和窗口)。如果這是#vPlayer是什麼,我沒有在文檔中看到它與Flash對象一起工作。

+0

我一開始也在想這個問題,但文檔說你可以這樣使用它:http://api.jquery.com/load-event/ – johnmdonahue

+0

@johnmdonahue - 這是我不喜歡關於jQuery的一件事。方法如此重載,你不能確定你有適合你的情況的正確的文檔頁面。我不知道這是否適用於Flash Player,這是我對vPlayer的猜測。你的文檔頁面(不同於我找到的文檔頁面)說它可以用於這些對象:圖像,腳本,框架,iframe。如果vPlayer不是這樣的話,那麼沒有保證人。 – jfriend00

+0

在關於load()的新形式的答案中增加了一些註釋。 – jfriend00

1

如果您的$('#vPlayer')對象是動態創建的,您將需要現場活動。

$('#vPlayer').live('load',function() { 
    alert('yay'); 
}); 

編輯:生活並不適用於所有事件類型

在jQuery的1.3.x的只有以下JavaScript事件(除了 自定義事件)可以用綁定工作。 live():click,dblclick,keydown,keypress,keyup,mousedown,mousemove,mouseout,mouseover和 mouseup。

從jQuery 1.4開始,.live()方法支持所有JavaScript事件以及 所有JavaScript事件。

從jQuery 1.4.1開始,即使焦點和模糊工作與生活(映射到 更合適,冒泡,事件焦點和聚焦)。

從jQuery 1.4.1開始,可以指定懸停事件(映射到 「mouseenter mouseleave」)。

+0

.live()僅適用於泡沫的特定事件(明顯的是點擊和鍵)。我沒有在這裏看到任何文檔http://api.jquery.com/live/,它表示它可以使用'load()'。你知道一個事實,它可以使用'load()'嗎? – jfriend00

+0

你是對的,它適用於一個非常具體的事件列表。 – rkw