我正在尝试取悦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'));

10-06 08:02
查看更多