Javascript 分离jQuery插件中匹配选择器的元素的状态
演示: 我正在重写一个jQuery插件,它显示Javascript 分离jQuery插件中匹配选择器的元素的状态,javascript,jquery,jquery-plugins,Javascript,Jquery,Jquery Plugins,演示: 我正在重写一个jQuery插件,它显示.srt文件中的字幕。显示字幕的div包含属性data video(关联的HTML5视频对象的ID)和data srt(包含字幕文件的URL) 我的想法是如果我写 $('.srt').srt(); 这将加载并播放srt类中所有元素的字幕 jQuery插件中有一个名为playstitles的方法,它完成了主要工作。这有一个整数currentSubtitle,它保存要播放的当前字幕的索引 问题是,如果$('.srt')匹配多个元素,它们都将共享curr
.srt
文件中的字幕。显示字幕的div
包含属性data video
(关联的HTML5视频对象的ID)和data srt
(包含字幕文件的URL)
我的想法是如果我写
$('.srt').srt();
这将加载并播放srt类中所有元素的字幕
jQuery插件中有一个名为playstitles
的方法,它完成了主要工作。这有一个整数currentSubtitle
,它保存要播放的当前字幕的索引
问题是,如果
$('.srt')
匹配多个元素,它们都将共享currentSubtitle
变量,我不确定如何将它们分开。您需要将插件代码与每个包装在一起,以便每个选择器都有自己的变量副本:
$.fn.srt = function() {
return this.each(function() {
var currentSubtitle;
var self = $(this);
return $.extend(self, {
playSubtitles: function(...) {
...
}
});
});
});
您应该将currentSubtitle值附加到每个div.srt,如$(currentSrtelem.data('currentSubtitle',12)