提问人:Tom 提问时间:2/4/2016 最后编辑:Tom 更新时间:2/4/2016 访问量:131
如何使用“this”变量检索调用函数的元素的 id,而不使用
How to retrieve id of element that a function is called on *without* using 'this' variable
问:
我试图取悦 JSLint 的愿望,除非在特殊情况下不使用。我有一个原始函数,如下所示:this
$.fn.extend({
my_original_function: function ([arguments]){
[arbitrary routine]
}
});
...在 ID 选择器上像这样调用:
$('#my_id').my_original_function([arguments]);
在我的函数的原始版本中,我使用其中返回函数正在运行的选定 DOM 元素。但是,JSLint 不喜欢它,所以我试图找到一种方法来引用(在本例中),该函数正在被调用,在函数中......不使用 !this
#my_id
this
这似乎更像是一项学术练习,但我正在为如何在不使用 .有什么想法吗?this
* 有问题的功能 *
这是一个切换功能,用于在单击文本链接时切换文本链接。这是原始版本: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");
答:
0赞
Nate
2/4/2016
#1
$.fn.extend({
toggleText: function(open, close, that) {...
$('#id_one').toggleText("Toggle Text 1", "Toggle Text 2", $('#id_one'));
评论
0赞
Tom
2/4/2016
这是我能想到的唯一解决方案,但它的缺点是要求编码人员显式键入 id 选择器,而不是让函数动态检索 id。
上一个:编译器将此指针移动到错误的地址
下一个:如何访问弹出定义中的调用对象?
评论
this
event.target
this
this
my_original_function
this