Jquery 如何从单击事件将上下文和参数传递给外部函数

Jquery 如何从单击事件将上下文和参数传递给外部函数,jquery,Jquery,如何从单击事件将上下文和五步表传递给外部函数 错误:TypeError:i.handler.apply不是函数 var myF = function(car){ alert('a click ' + car.model + ' ' + car.year);// alert the car that was passed in $(this).css({'border':'1px solid red'}); // make border red of the div that was click

如何从单击事件将上下文和五步表传递给外部函数

错误:TypeError:i.handler.apply不是函数

var myF = function(car){
alert('a click ' + car.model + ' ' + car.year);// alert the car that was passed in 
$(this).css({'border':'1px solid red'}); // make border red of the div that was clicked
};

var myCar = new Object();
myCar.make = "Ford";
myCar.model = "Mustang";
myCar.year = 1969;

var myCar2 = new Object();
myCar2.make = "VW";
myCar2.model = "golf";
myCar2.year = 2000;


$('.cross-browser').click(this,myCar,myF);
$('.lightweight-footprint').click(this,myCar2,myF);
使用以下命令:

$(document).on('click', '.cross-browser', function(){
     myF(this);
});
这允许事件委派,并应用于具有类“cross browser”的任何元素,即使是动态创建的元素

代码笔中的示例:


可以从阅读$的文档开始。单击()?应该指出的是,这是非常低效的,除非绝对必要,否则没有人会建议这样做。此信息通常有一个容器,从该容器而不是整个文档中委托。@PlantTheIdea这是使用jQuery进行事件委托的最佳实践。如果您希望提高效率,那么使用vanilla js很容易实现这一点。如果您在google上搜索it,您可以找到许多源代码中的一个,单独授权是一种最佳实践,但是从文档中授权被认为是执行授权的最低效(也是最差)的方式,因为每个事件都需要通过整个DOM树进行处理。从这些对象的容器中委派,因为本地化是执行委派的最快方式。=>我的回答准确而简洁地解决了老年退休金计划的问题。当然,您可以从父元素进行委托,但是op没有提供任何html供我们任何一方进行任何假设。如果你想自己更好地回答这个问题,请这样做。这里不需要防御性的,伙计,你的授权是正确的,但是你选择的实现恰好是jQuery文档本身所说要避免的事情。我留下了一条评论,而不是提供一个相互竞争的答案,这样你就可以更新你的答案,并在你正确把握意图时获得积分。不要让你的骄傲掩盖了提供答案的教学方面的重要性。我们应该宣传好的做法,而不是足够好的做法。