下面是 jPlayer 与 jQuery 的代码。我必须动态创建 jPlayer。
$("#jquery_jplayer_0").jPlayer({
ready: function () {
$(this).jPlayer("setMedia", {
webmv: "http://....",
poster: "http://...."
});
},
play: function() { // To avoid both jPlayers playing together.
$(this).jPlayer("pauseOthers");
},
repeat: function(event) { // Override the default jPlayer repeat event handler
if(event.jPlayer.options.loop) {
$(this).unbind(".jPlayerRepeat").unbind(".jPlayerNext");
$(this).bind($.jPlayer.event.ended + ".jPlayer.jPlayerRepeat", function() {
$(this).jPlayer("play");
});
} else {
$(this).unbind(".jPlayerRepeat").unbind(".jPlayerNext");
$(this).bind($.jPlayer.event.ended + ".jPlayer.jPlayerNext", function() {
$("#jquery_jplayer_1").jPlayer("play", 0);
});
}
},
swfPath: "js",
supplied: "webmv",
size: {
width: "640px",
height: "360px",
cssClass: "jp-video-360p"
},
cssSelectorAncestor: "#jp_container_0"
});
我在页面加载时有 20 个 jPlayers。所以我不想写这 20 次。
for(var i=1;i<=20;i++){
$("#jquery_jplayer_"+i).jPlayer({
ready: function () {
$(this).jPlayer("setMedia", {
webmv: "http://..",
poster: "http://.."
});
},
play: function() { // To avoid both jPlayers playing together.
$(this).jPlayer("pauseOthers");
},
repeat: function(event) { // Override the default jPlayer repeat event handler
if(event.jPlayer.options.loop) {
$(this).unbind(".jPlayerRepeat").unbind(".jPlayerNext");
$(this).bind($.jPlayer.event.ended + ".jPlayer.jPlayerRepeat", function() {
$(this).jPlayer("play");
});
} else {
$(this).unbind(".jPlayerRepeat").unbind(".jPlayerNext");
$(this).bind($.jPlayer.event.ended + ".jPlayer.jPlayerNext", function() {
$("#jquery_jplayer_"+(i-1)).jPlayer("play", 0);
});
}
},
swfPath: "jplayer/js",
supplied: "webmv",
size: {
width: "640px",
height: "360px",
cssClass: "jp-video-360p"
},
cssSelectorAncestor: "#jp_container_"+i
});
}
我想应用上面的代码。但这对我不起作用。可能是它不创建动态对象。使用了 eval() 但没有用。