我正在尝试取悦JSLint的愿望,除非在特殊情况下不使用this
。我有一个原始功能,如下所示:
$.fn.extend({
my_original_function: function ([arguments]){
[arbitrary routine]
}
});
...在ID选择器上这样调用:
$('#my_id').my_original_function([arguments]);
在该函数的原始版本中,我在其中使用了
this
返回该函数在其上运行的选定DOM元素。但是,JSLint不喜欢它,因此,我试图找到一种在函数内引用#my_id
的方法(在本示例中),该函数正在被调用...而不使用this
!这似乎比任何事情都更像是一项学术练习,但是我在不使用
this
的情况下如何检索函数中的id方面颇费心思。有任何想法吗?*问题中的功能*
这是一个切换功能,用于在单击文本链接时进行切换。这是
this
的原始版本:$.fn.extend({
toggleText: function(open, close) {
var isClicked = false;
var that = $(this);
$(this).click(function () {
if (isClicked) {
that.text(open);
isClicked = false;
} else {
that.text(close);
isClicked = true;
}
});
return $(this);
}
});
$('#id_one').toggleText("Toggle Text 1", "Toggle Text 2");
$('#id_two').toggleText("Hello", "Goodbye");
最佳答案
$.fn.extend({
toggleText: function(open, close, that) {...
$('#id_one').toggleText("Toggle Text 1", "Toggle Text 2", $('#id_one'));