我有以下内容:
var Save = $('th:first')[0];
$('th').click(function() {
if (Save !== this) {
Save = this;
...
}
});
如何将"保存"放入闭包范围?
使用jQuery,我倾向于将整个批次包装在一个函数中,该函数以$
的形式传入jQuery
对象,以避免该简写中的命名空间冲突,正如jQuery文档所建议的那样。
(function($) {
// ....
})(jQuery);
该范围内的任何变量,例如var Save
,都在全局名称范围之外的闭包中。
我真的不明白你为什么要做你想做的事情(甚至不明白你到底想做什么…),但我认为这个问题有两个解决方案:
var Save = $('th:first')[0];
$('th').each(function() {
var last = Save;
$(this).click(function() {
if (last !== this) {
last = this;
...
}
});
});
和
var Save = $('th:first')[0];
$('th').data('Save', Save).click(function() {
if ($(this).data('Save') !== this) {
$(this).data('Save', this);
...
}
});
**编辑**
如果你想要的只是"屏蔽"变量Save
,那么
(function() {
var Save = $('th:first')[0];
$('th').click(function() {
if (Save !== this) {
Save = this;
...
}
});
})();