[英]How can i bind multiple javascript object instance to elements
I'm trying to create a JavaScript player, but not sure how can i have multiple instance of it in the same page such that each have its on functionality 我正在尝试创建一个JavaScript播放器,但不确定如何在同一页面中拥有多个它的实例,从而使每个实例都具有其打开功能
$(function() { var player = function(obj) { player.item = obj; player.audio = player.item.attr('data-player-src'); player.audioElement = document.createElement('audio'); player.audioElement.setAttribute('src', player.audio); player.audioElement.addEventListener('canplay', function() { player.item.find('.length').text('duration : ' + player.audioElement.duration + ' seconds'); }); player.audioElement.addEventListener('timeupdate', function() { player.item.find('.duration').text('current seconds : ' + player.audioElement.currentTime); }); player.item.find('.play').on('click', function() { player.play(); }); player.item.find('.pause').on('click', function() { player.pause(); }); player.play = function() { player.audioElement.play(); } player.pause = function() { player.audioElement.pause(); } return player; } $.fn.player = function(options) { return player($(this)); } var playerone = $("#player1").player(); var playerone = $("#player2").player(); });
.player { border: 1px solid red; height: 60px; width: 200px; margin: 8px; padding: 8px; }
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script> <div class="player" id="player1" data-player-src="http://www.soundjay.com/misc/sounds/bell-ringing-01.mp3"> <div class="length">Length</div> <div class="duration"></div> <input type="button" class="play" value="Play" /> <input type="button" class="pause" value="Pause" /> </div> <div class="player" id="player2" data-player-src="https://www.soundjay.com/free-music/sounds/midnight-ride-01a.mp3"> <div class="length">Length</div> <div class="duration"></div> <input type="button" class="play" value="Play" /> <input type="button" class="pause" value="Pause" /> </div>
Currently the button clicks on player1 will trigger player2 or vice versa. 当前,单击播放器1的按钮将触发播放器2,反之亦然。 How can i make each player independent on each other in the same page 如何使每个玩家在同一页面上彼此独立
You just need to add 您只需要添加
$(function() {
var player = function(obj) {
var player={};//this line
into the first line of your function to make it reusable. 插入函数的第一行以使其可重用。 To make it usable through jquery you can do: 要通过jquery使其可用,您可以执行以下操作:
$.fn.player=function(options){
return player($(this));
}
Usecase 用例
var playerone= $("#el").player();
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.