我有三个链接作为表的排序标题,每个链接都是“排序”类的成员。我编写了一个简单的jquery函数,当单击任何“sort”类链接时会触发该函数。有一个switch case,它指定一个与tablesorter插件一起使用的列号(columnNum)。但是,现在我正在为排序类的id返回一些奇怪的值。
$(".sort").toggle(function() {
// the column id's are datecaption, hourscaption, taskcaption
var column = $(this).attr('id');
var columnNum;
switch(column){
case 'datecaption':
columnNum = 1;
break;
case 'hourscaption':
columnNum = 2;
break;
case 'taskcaption':
columnNum = 3;
break;
default:
break;
}
var sorting = [[columnNum,1]];
$("#task_table").trigger("sorton",[sorting]);
return false;
}, function(){
var sorting = [[columnNum,0]];
$("#task_table").trigger("sorton",[sorting]);
return false;
});
如果我警告列变量,我会得到“aeaoofnhgocdbnbeljkmbjdmhbcokfdb-mousedown” - 它不能很好地服务于其他功能。
有人能告诉我为什么会这样吗?
由于
答案 0 :(得分:1)
没有更多的代码或HTML,很难说。我的猜测$(this)
不是你想象的那样。尝试添加console.log($(this));
(最好在Firebug中)点击结果,您会看到$(this)
实际指的是什么。
此外,您可以在$('#aeaoofnhgocdbnbeljkmbjdmhbcokfdb-mousedown')
查询DOM,并查看您应该获得的元素$(this)
。
有关“this”在不同情况下所指的内容的更多信息,请查看Mozilla开发者网络: https://developer.mozilla.org/en/JavaScript/Reference/Operators/this