gpt4 book ai didi

javascript - 如何在不使用匿名回调参数的情况下访问 jQuery 事件

转载 作者:数据小太阳 更新时间:2023-10-29 04:27:24 24 4
gpt4 key购买 nike

通常,当需要访问事件时,您可以通过回调函数中指定的参数来实现:

$button.live("click", function(ev) {
// do something with ev here, like check 'ev.target'
}

但相反(由于太复杂的原因无法进入这里),我不想使用匿名回调函数,而是指定要调用的函数,如下所示:

$button.live("click", functionToCall(ev, $(this));

因此您会注意到我将“ev”作为参数包含在 functionToCall() 中,但这显然行不通,因为我没有使用匿名回调函数。但我仍然需要在 functionToCall() 中访问该点击事件(以检查 ev.target)。我的问题是,如何访问此事件?如果我能做这样的事情就好了:

$button.live("click", functionToCall($(this));

function functionToCall($item) {

var target = $item.event("click").target;
// do something with target
}

任何想法将不胜感激。谢谢。

最佳答案

原始答案

function test(eve) {
alert(eve.type);
alert(this);
//$(this) if you need it as jQuery object
}
$([yourselector]).live("click", test);

您将在eve 参数中自动获取事件。


在评论中回答扩展问题

传入参数会使它变得有点困难。如果您需要解释为什么我这样做:问。

function helper(customparam) {
return function(eve, selector) { actualFunction(eve, selector, customparam, this) };
}

function actualFunction(eve, selector, customparam, self) {
alert(eve.type);
alert(selector);
alert(customparam);
alert(self); //self is now the element we clicked on
//$(self) if you need it as jQuery object
//using this won't work anymore as this is now window
}

$([yourselector]).live("click", helper([yourparameter]));

关于javascript - 如何在不使用匿名回调参数的情况下访问 jQuery 事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1798625/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com