我对jQuery了解不多。在这里,我尝试实现一个闭包,将click事件附加到每个锚标记,以便每个锚点标记一次就会提醒某个数字。但我收到以下错误:
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);
);
}
答案 0 :(得分:2)
你不需要在这里关闭。这可以使用简单的方法来实现。在$i
前缀自定义属性中保留php变量data-*
,可以使用.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'));
});