2011-10-13 46 views
0

演示:http://jsfiddle.net/waitinforatrain/7Uzhg/2/分離在jQuery插件匹配選擇器要素的狀態

我重寫從.srt文件顯示字幕一個jQuery插件。顯示字幕的div包含屬性data-video(關聯的HTML5視頻對象的ID)和data-srt(包含字幕文件的URL)。

的想法是,如果我寫

$('.srt').srt(); 

這將加載,並從與類SRT的所有元素髮揮的字幕。

jQuery插件中有一個名爲playSubtitles的方法,它執行主要工作。它有一個整數currentSubtitle,它保存當前要播放的字幕的索引。

問題是,如果$('.srt')匹配多個元素,他們都將共享currentSubtitle變量,我不知道如何將它們分開。

+1

您應該currentSubtitle價值重視像$每個div.srt(theCurrentSrtElem)。數據(」 currentSubtitle」,12) – biziclop

回答

0

你需要each來包裝你的插件代碼,所以每一個選擇都有自己的變量副本:

$.fn.srt = function() { 
    return this.each(function() { 
     var currentSubtitle; 
     var self = $(this); 
     return $.extend(self, { 
      playSubtitles: function(...) { 
       ... 
      } 
     }); 
    }); 
});