我不太了解javascript语法,我的问题是:
jquery如何在匿名函数中定义get参数的click函数?
案例:
$("a").click(function(event) {
alert(event.type);
});
在C中应该定义函数:
void click(fn,event){
}
在javascript中它看起来她定义为 - (但在哪里定义了事件?):
click (fn){
}
请向我解释点击功能代码源here的jquery语法。
谢谢, 约瑟夫
答案 0 :(得分:2)
如果您只是想知道event
对象传递给处理程序的位置,那就是jQuery-1.5.2 redistributable source code(或line 438 of the actual, un-contatenated source file)的第2568行:
var ret = handleObj.handler.apply( this, args );
在上面的代码行中,handler
是您的匿名函数,args
是一个数组,其第一个元素是事件对象。 jQuery使用the apply
method of the JavaScript Function object来调用处理程序并传入参数
当涉及添加和处理事件的完整序列时,jQuery源代码非常复杂,因此,除非您想要对数百行代码进行逐行解释,否则我建议您将问题重新解释为较小的范围(例如,您可以创建您想要了解的场景的玩具演示)。
答案 1 :(得分:1)
也许这会有所帮助?
dosomething(function(message) {
alert(message);
});
function dosomething(fn) {
fn("Hello!");
}
答案 2 :(得分:1)
jQuery的第一部分是选择器$("a")
,它选择并返回从DOM中选择的对象。在这种情况下,它将返回页面上所有锚标记对象的列表。
然后,您将.click()方法链接到该方法,jQuery将事件侦听器附加到所有锚标记。附加事件监听器时,它或多或少等同于执行
<a href='..' onclick='someFunction(event)'>some link</a>
...将事件对象传递给函数。
例如,与此相比:
<a onclick='blah(event)'>click</a>
<script type='text/javascript'>
function blah(e) {
alert (e.type);
}
</script>
如果我点击它,我会在警报中看到“点击”。原则上,jQuery也在做同样的事情。