我是一名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>
任何帮助都将非常感谢:)
谢谢!!
答案 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/
..希望这有帮助!