我试图用JavaScript闭包来解决一个简单的练习,以便了解它们是如何工作的,并且遇到了一个可能只有一个简单答案的错误,或者可能与闭包本身无关。
我使用的html标记是:
vis/vis.c
,JavaScript是:
<!DOCTYPE html>
<html>
<head>
<script src="https://code.jquery.com/jquery-2.1.4.js"></script>
<script src="https://code.jquery.com/jquery-1.9.1.js"></script>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width">
<title>JS Bin</title>
</head>
<body>
<ol>
<li class="track">Test Song</li>
<li class="track">Test Song</li>
<li class="track">Test Song</li>
<li class="track">Test Song</li>
<li class="track">Test Song</li>
<li class="track">Test Song</li>
<li class="track">Test Song</li>
<li class="track">Test Song</li>
<li class="track">Test Song</li>
</ol>
<p>Now playing track <span id="number"></span></p>
</body>
</html>
我点击的输出正在成为[对象MouseEvent] 什么时候应该点击实际的轨道。 我不确定是什么造成的,这里有一个fsfiddle: https://jsbin.com/gujomef/edit?html,js,output
答案 0 :(得分:0)
如果您只想要单击的轨道号,可以使用.each()
循环在jQuery中为您创建闭包。
$(function(){
$('.track').each(function(i, e){
$(e).click(function(){
$('#number').text(i);
});
});
});