Jquery Jplayer在我页面中第一次调用函数时不会触发setMedia函数

时间:2013-10-21 16:41:03

标签: javascript jquery jplayer

我有一个显示在我页面中的歌曲列表,我找不到为什么它不能处理页面的第一首歌曲。代码非常简单,我对所有内容进行了双重或三重检查。甚至errorAlerts也没有收到任何错误。我在页面中有20个元素,我已经为这首歌添加了一个错误的路径,在这种情况下我显示了一个错误,但我知道当前代码适用于所有元素,除了第一个因为未知原因是没有触发“就绪:功能(事件)”

以下是代码:

<?php

    $count = 1;
    foreach( $all_songs as $songs){

?>
    <script type="text/javascript">
        $(document).ready(function(){

            $("#jquery_jplayer_<?php echo($count);?>").jPlayer({

            ready: function (event) {

                $(this).jPlayer("setMedia", {

                    m4a:"uploads/audio/<?php echo($songs->audio_filename);?>"//,

                    //mp3:"uploads/audio/<?php //echo($songs->audio_filename);?>",

                    //oga:"uploads/audio/<?php //echo($songs->audio_filename);?>"
                });

            },


            play: function() {
                $(this).jPlayer("pauseOthers");
            }, 

            swfPath: "js",

            supplied: "m4a, mp3, oga",

            cssSelectorAncestor: "#jp_container_<?php echo($count);?>",

            wmode: "window",

            smoothPlayBar: true,

            errorAlerts: true,

        keyEnabled: true

        });

    });
</script>
<?php
        $count++;
    }
?>

非常感谢帮助我。

亚历

1 个答案:

答案 0 :(得分:0)

嗯,你有一个php foreach里面的javascript代码,这意味着你有多个jplayer实例可能会与交互产生冲突。我的建议是创建一个包含所有歌曲的playlist javascript array,这样就可以避免创建一个foreach循环