Javascript 使用闭包作用域保留最后一个值
我有以下资料:Javascript 使用闭包作用域保留最后一个值,javascript,jquery,Javascript,Jquery,我有以下资料: $('th').click(function() { var $th = $(this); ... }); 使用闭包范围,我想说: var $th; $('th').click(function() { if ($th !== $(this)) { $th = $(this); ... } }); 注意:这段代码正好在之前,所以我不需要$(function(){}) 您应该检查底层DOM元素是否相等: if ($th[0] !=
$('th').click(function() {
var $th = $(this);
...
});
使用闭包范围,我想说:
var $th;
$('th').click(function() {
if ($th !== $(this)) {
$th = $(this);
...
}
});
注意:这段代码正好在之前,所以我不需要$(function(){}) 您应该检查底层DOM元素是否相等:
if ($th[0] !== this) {
(您也可以在不调用
$
的情况下存储此
本身)我想我必须将其定义为一个匿名函数,返回函数,以便在return语句之前定义$th。不起作用的原因是$(this)!=$(this)
,jQuery构造函数生成一个新对象,因此不能这样检查它。否则第二句就可以了。也许我应该检查$th.index()!==$(this).index()参见SLaks答案,这是明智的方法。($th[0]
假设您存储$th=$(此)
,可能您正在进一步使用$th
)。