這不是關於jQuery的問題,而是關於jQuery如何實現這樣的行爲。簡單的javascript來模仿jQuery在事件處理程序中使用這種行爲
在jQuery中,你可以這樣做:
$('#some_link_id').click(function()
{
alert(this.tagName); //displays 'A'
})
會有人籠統地解釋(不需要你編寫代碼),他們怎麼獲得通過事件的調用者HTML elments(在這個具體的例子鏈接)進入這個關鍵字?
我顯然試圖在jQuery代碼中看第一,但我無法理解一行。
謝謝!
UPDATE: 根據阿努拉格答案,我決定在這一點上張貼一些代碼,因爲它似乎比我想象中的簡單代碼:
function AddEvent(html_element, event_name, event_function)
{
if(html_element.attachEvent) //IE
html_element.attachEvent("on" + event_name, function() {event_function.call(html_element);});
else if(html_element.addEventListener) //FF
html_element.addEventListener(event_name, event_function, false); //don't need the 'call' trick because in FF everything already works in the right way
}
,然後現在有一個簡單的電話,我們模仿的jQuery在事件處理程序使用此行爲
AddEvent(document.getElementById('some_id'), 'click', function()
{
alert(this.tagName); //shows 'A', and it's cross browser: works both IE and FF
});
你認爲有任何錯誤或東西我誤解採取的所有事情以一種過於SUP有意義的方式?
FF看起來不錯,長時間沒有寫出IE特定的事件處理,但是如果它工作的話,那一切都很好! :) – Anurag 2010-04-14 01:42:53