我对JWPlayer有一个奇怪的问题。
JavaScript的:
$(document).ready(function ubsrt()
{
ktp_system = 0;
});
function mp3Player(v_url,v_title)
{
$('#console_box').append('<br />1-> start');
if(ktp_system == 1) // <--- Did not work
{
$('#console_box').append('1 = return false');
return false; // <--- Did not work
}
$('#console_box').append('<br />2-> '+ktp_system+'');
ktp_system['mp3Player'] = 1; //<--- fixed in the example to ktp_system = 1;
window.onbeforeunload = function() { return 'Es läuft noch ein Audio-Stream!' ; }
$('body').append('<div id="mp3Player" class="no_dra"></div>');
$.getScript('http://player.longtailvideo.com/jwplayer.js', function ()
{
jwplayer("mp3Player").setup({
flashplayer: "http://player.longtailvideo.com/player.swf",
file: ''+v_url+'',
autostart: "true",
height: 25,
width: 300,
controlbar: "bottom"
});
$('#mp3Player_wrapper').prepend('<div style="float:left;"><strong>MP3 Player</strong></div><div id="ktp_mp3player_close" onclick="window.onbeforeunload = null; jwplayer(\'mp3Player\').remove(); $(\'#mp3Player, #mp3Player_wrapper\').detach();" style="position:absolute; right:10px; top:10px; cursor:pointer; display:none; background-position:-32px -192px; height: 16px; width: 16px; " class="iconset"> </div><div style="clear:both;"></div><div id="ktp_mp3player_title" style="width:300px; overflow:hidden; margin-bottom:3px;" class="small">'+v_url+'</div>');
$('#mp3Player_wrapper').css('z-index','107').css('width','300px').css('position','absolute').css('padding','10px 10px 40px 10px').addClass('dra').addClass('bg_one');
$("#mp3Player_wrapper").hover( function () { $('#ktp_mp3player_close').show(); }, function () { $('#ktp_mp3player_close').hide(); });
$('#mp3Player').addClass('no_dra');
});
$('#console_box').append('<br />3-> '+ktp_system+'');
return false;
}
HTML:
<body>
<input type="button" onclick="mp3Player('http://chaosradio.ccc.de/archive/chaosradio_168.mp3');" value="play" />
<br /><br />
<div id="console_box"><hr /></div>
</body>
工作示例:http://jsbin.com/opuvum/11/edit#preview
一切正常但是当我再次按下播放按钮时,我的检查是否(ktp_system == 1)将被忽略......但为什么?
答案 0 :(得分:1)
不你的条件:
if (ktp_system == 1)
这是问题所在。首次单击播放按钮后,函数mp3Player
永远不会被调用,因此不会评估您的条件。您可以在alert
开头和mp3Player()
子句后面的相应位置添加if
语句来查看此内容:
http://jsbin.com/ireret/2/edit
按钮的事件监听器似乎无法存活。这是您jwplayer
电话中发生的事情的结果。您会注意到,如果您仅对该调出进行评论,则它会按预期工作,并评估条件:
http://jsbin.com/eqofil/2/edit
沿着该行的某个地方,按钮的click
事件必须处于未绑定状态。我没有通过缩小的jwplayer源来进一步跟踪它,但解决这个问题的一种方法是使用.click()
或.live()
将click事件绑定到按钮:
http://jsbin.com/opuvum/14/edit
希望这有帮助。