简体   繁体   English

如何将多个JavaScript对象实例绑定到元素

[英]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.

相关问题 如何在jQuery中将多个元素绑定到多个事件? - How can I bind multiple elements to multiple events in jQuery? jQuery:如何绑定同一个类的多个元素? - jQuery: How can I bind multiple elements of the same class? 使用对象内绑定的Javascript,如何访问对象呢? - Javascript using bind within an object, how can I access object this? 如何访问JavaScript中的对象元素? - How can i access to object elements in javascript? 在Javascript中,为什么我无法绘制我的对象的多个实例? - In Javascript, why I can't draw multiple instance of my object? 如何使用javascript将数据绑定到多个元素 - How to bind data to multiple elements using javascript 如何绑定:样式与对象语法和多个背景图像? - How can I bind:style with object syntax and multiple background images? 如何使用 Javascript / Jquery 创建具有多个元素的可增加多维对象 - How can I do Javascript / Jquery create increase-able multi dimenssional object with multiple elements 我得到一个JSON / Javascript对象是因为可以在控制台中看到它,但是如何获取它进行序列化并使数据绑定到Ui元素呢? - I am getting a JSON/Javascript object because I can see it in my console, but how do I get it to serialize and make my data bind to my Ui elements? 我如何才能拥有同一Javascript模块的多个实例? - How can I have multiple instance of same Javascript Module?
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM