Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/74.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 分离jQuery插件中匹配选择器的元素的状态_Javascript_Jquery_Jquery Plugins - Fatal编程技术网

Javascript 分离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

演示:

我正在重写一个jQuery插件,它显示
.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)