如何在调用函数时设置jQuery?

slo*_*ife 11 javascript jquery

使用jQuery,我设置了一个链接标签的点击处理程序,如下所示:

$('#lnk').click(handleClick);
Run Code Online (Sandbox Code Playgroud)

handleClick做这样的事情:

function handleClick() {
    var $this = $(this);
    ...
}
Run Code Online (Sandbox Code Playgroud)

现在我需要在点击#lnk之外直接调用handleClick().this调用handleClick时有没有办法设置?

Fel*_*ing 24

你可以使用apply()call():

handleClick.call(theElementThatShouldBeThis);
Run Code Online (Sandbox Code Playgroud)

但当然theElementThatShouldBeThis必须是一个DOM元素或被接受作为输入的东西jQuery().

如果你正在访问event里面的元素,它会变得更加棘手handleClick.但我会假设你没有;)

您还可以始终#lnk通过调用$('#lnk').click()(模拟单击)在上下文中执行事件处理程序.

  • 这些内置于javascript中 (5认同)

Kar*_*rim 5

我认为您正在寻找“致电”或“申请”:

称呼

https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Function/call

申请

https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Function/apply

来自MDC

var result = fun.apply(thisArg, [argsArray]);

or

var result = fun.call(thisArg[, arg1[, arg2[, ...]]]); 
Run Code Online (Sandbox Code Playgroud)