我正在使用jQuery,并且我有一个用作事件回调的函数,所以在该函数中,“this”表示捕获该事件的对象。但是,有一个实例需要从另一个函数明确调用函数 - 在这种情况下,如何设置函数内的“this”等于什么?在调用Javascript函数时,如何设置“this”的自定义值?
例如:
function handleEvent(event) {
$(this).removeClass("sad").addClass("happy");
}
$("a.sad").click(handleEvent); // in this case, "this" is the anchor clicked
function differentEvent(event) {
$("input.sad").keydown(e) {
doSomeOtherProcessing();
handleEvent(e); // in this case, "this" will be the window object
// but I'd like to set it to be, say, the input in question
}
}
LOLZ ...我喜欢它。很好的解决方法。 – simplyharsh 2009-05-27 13:10:39
我不敢相信人们对帕特里克的回答感到满意,这正是原始问题所需要的。这就是jQuery如何在它调用的代码中分配“this”关键字,并且应该如何完成。要改变一个函数的参数来容纳通过内置和通常理解的函数很容易执行的事情,就是尾巴摇摆狗的情况... – 2009-05-27 15:51:05
我想这只是表明有很多人不要抱怨JavaScript,也许像jQuery这样的库的使用确保了他们的无知,因为他们没有花时间去真正理解语言本身。 – 2009-05-27 16:02:52