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

Jquery Jplayer doesn't trigger the setMedia function on the 1st call of the function in my page

本文关键字:函数 setMedia 调用 第一次 Jplayer 我的 Jquery      更新时间:2023-09-26

我的页面中显示了歌曲列表,但我找不到为什么它不适用于页面的第一首歌曲。代码非常简单,我已经仔细或三重检查了所有内容。即使是错误警报也没有收到任何错误。我在页面中有 20 个元素,我已经为歌曲添加了错误的路径,在这种情况下我显示了一个错误,但我知道当前代码适用于所有元素,除了第一个未知原因没有触发"ready:函数(事件)"

这是代码:

<?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++;
    }
?>

非常感谢你帮助我。

亚历克斯

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