我对jQuery了解不多。在这里,我试图实现一个闭包,将一个点击事件附加到每个锚标记上,这样每个锚标记一旦被点击就会提醒某个数字。但我得到了以下错误:
SyntaxError: missing ) after argument list };})(i);
有人能帮我解决这个问题吗?谢谢:)
代码:
<div id='pageBox'>
<ul id='pageContainer'>
<?php for($i=1;$i<=$pagenum;$i++){?>
<li><a href=''><?php echo $i;?></a></li>
<?php }?>
</ul>
</div>
<script>
for(i=1;i<=<?php echo $pagenum;?>;i++){
$('#pageContainer li a').click((function(i){return function(event){
event.preventDefault();
alert(i);
};})(i);
);
}
这里不需要闭包。这可以使用简单的方法来实现。在带有前缀的自定义属性data-*
中持久化php变量$i
,该属性可以使用.data()
获取
将HTML更改为
<ul id='pageContainer'>
<?php for($i=1;$i<=$pagenum;$i++){?>
<li><a href='' data-id='<?php echo $i;?>'><?php echo $i;?></a></li>
<?php }?>
</ul>
编写脚本
$('#pageContainer li a').click(function(){
alert($(this).data('id'));
});