2013-01-31 53 views
0

我有一個針對目前正在處理的html5視頻的插件,並且希望分別在網頁上單獨選擇每個視頻。它開始爲你通常會開始:無法在插件中使用jQuery選擇特定的HTML5視頻

(函數($){

$.fn.videoPlayer = function(options) { 


    var settings = { 
     playerWidth : '0.95', // Default is 95% 
     videoClass : 'video' // Video Class 
    } 

    // Extend the options so they work with the plugin 
    if(options) { 
     $.extend(settings, options); 
    } 



    // For each so that we keep chainability. 
    return this.each(function() {  


     // Basic Variables 
     $this = $(this); 
     $settings = settings; 

那麼既然我做的每一個在插件我希望每個視頻將分別具體選擇,但這是。不然所以,如果我想要做這樣的事情:

$this.play(); 

它不工作,相反,我不得不這樣做還是我得到一個錯誤約不具有該方法元素:

$this[0].play(); 

這不適用於插件,因爲我需要將其應用於所有視頻,並且這隻會選擇頁面上的第一個視頻。那麼我該如何解決這個問題呢?我在等待加載的元數據方面也遇到了一些麻煩,這些元數據似乎以某種方式混淆了頁面上的所有視頻(我假設因爲我必須等待或者因爲我上面提到的相關錯誤?)

任何想法?

回答

1

.play()是土生土長的DOM方法,所以使用this直接:

this.play(); 

因爲你是第一個包裹this jQuery的 - 也只有呼籲$thisplay - 你得到一個錯誤,因爲jQuery的沒有一種play方法。


P.S.使用$this[0].play()也可以。它不會選擇第一個視頻,因爲它使用each回調的this值,該回調在其集合中只有一個元素...