【发布时间】:2010-08-13 19:28:34
【问题描述】:
这可能很简单,但它让我发疯了。 我正在使用 jquery 和一个 while 循环进行一些分页,该循环有一个名为“pageNum”的变量,该变量在循环结束时更新并表示正在写出的页面。显然 pageNum 是在每次迭代结束时添加的。美好的。 这是让我很难受的代码:
$('#page' + pageNum).click(function(){
alert(pageNum);
});
因此,如果 3 是当前 pageNum,则该 id 可以正常工作,甚至会为(例如)id 为 page3 的 span 分配一次点击。问题是,当我单击该跨度时,发出警报的 pageNum 始终是循环中设置的 pageNum 的最后一个值。所以如果有 8 页,它总是会提醒 8。所以,我认为它必须总是拉入当前值,所以我尝试像这样传递 pageNum:
$('#page' + pageNum).click(function(pageNum){
alert(pageNum);
});
但现在警报显示 [Object object]。 我尝试在 click 事件内外创建变量,并为它们分配 pageNum 的值,但似乎没有任何效果。 这一定是非常愚蠢的事情,有人可以帮帮我吗?我需要在该点击事件中使用当前 pageNum。 提前感谢您的帮助!
【问题讨论】:
-
在 jQuery 中,第一个参数总是传递给事件对象。这就是您看到 [Object object] 的原因。因为对象就是事件。
标签: javascript jquery variables scope