Soundcloud API Javascript错误:$未定义

时间:2014-03-22 09:02:35

标签: javascript soundcloud

我是一名javascript初学者,当我尝试使用soundcloud API时出现此错误:

 ReferenceError: $ is not defined
 $("#stream").live("click", function(){

我删除了client_ID和track_ID,但这是我的脚本:

 <script type="text/javascript" src="http://connect.soundcloud.com/sdk.js"></script>
<script type="text/javascript">

    SC.initialize({
        client_id: "000000000000000000"
    });  

    $("#stream").live("click", function(){
        SC.stream("/tracks/000000000", {autoPlay: true});
    });

 </script>

HTML:

 <head> 
    <meta charset="utf-8">
    <link rel="stylesheet" type="text/css" href="css/player.css" />
</head>

<body>
    <div id="container">
        <h1>earth. home. destroyed.</h1>
            <nav>
                <ul>
                    <li id="stream">► saturn boy</li>
                    <li>► gold</li>
                    <li>► earth</li>
                    <li>► from the sun</li>
                    <li>► cosmic landscapes</li>
                </ul>
            </nav>
    </div>

 </body>

任何帮助都将非常感谢:)

谢谢!!

1 个答案:

答案 0 :(得分:1)

从脚本的示例来看,您似乎缺少对jQuery的引用(它不是默认库 - 您必须在任何需要它的页面上使用它之前明确地包含它)。

添加此项(在其他脚本标记之前)应修复它:

<script type='text/javascript' src='http://code.jquery.com/jquery-latest.min.js'></script>

另外,我建议不要使用'live',因为它已被弃用。相反,你应该使用'on'和委托。使用上面的HTML示例,可以通过以下编辑完成:

$('#container > h1 > nav > ul').on('click', '#stream', function(){
    SC.stream("/tracks/000000000", {autoPlay: true});
});
  • 仅当点击位于#stream元素上时才会触发处理程序 - 但#stream元素不需要在页面上开始 - 只有容器{{1} }。如果您同时动态创建ul,则可以“升级”一个级别并将选择器更改为此ul(具有类似效果,但此处#container > h1 > nav可以也是动态添加的。)

有关'on'的事件委派的更多信息:https://api.jquery.com/on/

..希望这有帮助!