如果(var = 0)在加载JWPlayer后不起作用

时间:2011-06-25 11:23:26

标签: jquery jwplayer

我对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">&nbsp;</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)将被忽略......但为什么?

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

希望这有帮助。