[英]How jquery define click function for get parameter inside anonymous function?
我不太了解javascript語法,我的問題是:
jQuery如何為匿名函數中的get參數定義click函數?
案子:
$("a").click(function(event) {
alert(event.type);
});
在C中,應定義函數:
void click(fn,event){
}
在javascript中,對我來說,她將其定義為-(但在哪里定義了事件?):
click (fn){
}
請在這里給我解釋點擊功能代碼源的jQuery語法。
謝謝,約瑟夫
如果您只想查找event
對象在哪里傳遞給您的處理程序,那將是jQuery-1.5.2可再分發源代碼的 2568 行 (或實際的,不受污染的源文件的438行 ):
var ret = handleObj.handler.apply( this, args );
在上面的代碼行中, handler
是您的匿名函數,而args
是一個數組,其第一個元素是事件對象。 jQuery使用JavaScript Function對象的apply
方法調用處理程序並傳遞參數
當涉及到添加和處理事件的全部序列時,jQuery源代碼非常復雜,因此,除非您要逐行解釋數百行代碼,否則建議將問題改寫為較小的范圍(例如,可以創建您想了解的場景的玩具演示)。
也許這會有所幫助?
dosomething(function(message) {
alert(message);
});
function dosomething(fn) {
fn("Hello!");
}
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在做同樣的事情。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.