多多色-多人伦交性欧美在线观看-多人伦精品一区二区三区视频-多色视频-免费黄色视屏网站-免费黄色在线

國(guó)內(nèi)最全I(xiàn)T社區(qū)平臺(tái) 聯(lián)系我們 | 收藏本站
阿里云優(yōu)惠2
您當(dāng)前位置:首頁 > web前端 > jscript > 譯文:JavaScript框架比較

譯文:JavaScript框架比較

來源:程序員人生   發(fā)布時(shí)間:2014-03-31 18:45:43 閱讀次數(shù):3509次
事件處理

每個(gè)JavaScript框架都實(shí)現(xiàn)跨瀏覽器的事件處理,鼓勵(lì)你擺脫舊式的內(nèi)聯(lián)附加事件而使用精簡(jiǎn)的線性方法。看看清單6的jQuery例子,使用hover事件高亮顯示div元素。

清單6:使用jQuery附加hover事件

$('#the-box').hover(function() {

$(this).addClass('highlight');

}, function() {

$(this).removeClass('highlight');

});
這是jQuery的一個(gè)特殊事件,你會(huì)發(fā)現(xiàn)它提供了兩個(gè)函數(shù)。第一個(gè)在onMouseOver事件觸發(fā)時(shí)調(diào)用,第二個(gè)函數(shù)在onMouseOut事件觸發(fā)時(shí)調(diào)用。這是因?yàn)閔over沒有標(biāo)準(zhǔn)的DOM事件。讓我們看看更為典型的事件,如click(瞧瞧清單7):

清單7:使用jQuery附加click事件

$('#the-button').click(function() {

alert('You pushed the button!');

});
正如你看到的那樣,實(shí)例中只有一個(gè)函數(shù)參數(shù)。jQuery中大多數(shù)事件均采用同樣的方式處理,在jQuery中使用事件處理程序,上下文指的是觸發(fā)事件的哪個(gè)對(duì)象。一些框架并不以這種方式工作,拿Prototype來說,清單7中的代碼看起來就像清單8中的那樣。

清單8:使用Prototype附加click事件

$('the-button').observe('click', function(e) {

alert('You pushed the button!');

});
你首先會(huì)注意到,沒有click函數(shù),而是一個(gè)observe函數(shù),它在引用自身之前接受一個(gè)事件參數(shù)。您還會(huì)注意到該函數(shù)接受一個(gè)參數(shù)e,這里的上下文指的是觸發(fā)事件的元素。看看它如何工作,讓我們用Prototype重寫清單6中的代碼(看清單9)。

清單9:使用Prototype附加懸停事件

$('the-box').observe('mouseover', function(e) {

var el = Event.element(e);

el.addClassName('highlight');

});

$('the-box').observe('mouseout', function(e) {

var el = Event.element(e);

el.removeClassName('highlight');

});
jQuery也不同,你只需要使用$函數(shù)得到上下文變量,Prototype庫則使用Event.element() 函數(shù)。此外,你注意到你需要將mouseover和mouseout 事件分開。

通過該文章的一些教程,你可以看到函數(shù)以內(nèi)聯(lián)的方式創(chuàng)建,并不命名。這意味著它不能重復(fù)使用,Prototype的懸停示例也給了我們一個(gè)如何使用命名函數(shù)的機(jī)會(huì)。清單10說明了這個(gè)方法。

清單10:使用Prototype改進(jìn)懸停事件

function toggleClass(e) {

var el = Event.element(e);

if(el.hasClassName('highlight'))

row.removeClassName('highlight');

else

row.addClassName('highlight');

}

$('the-box').observe('mouseover', toggleClass);

$('the-box').observe('mouseout', toggleClass);
您會(huì)注意到,此時(shí)你只需定義一個(gè)函數(shù)。它同時(shí)被mouseover和mouseout事件調(diào)用。該函數(shù)根據(jù)元素是否有“highlight”的類名,并基于結(jié)果添加或刪除之。你也會(huì)注意到,參數(shù)e隱式傳遞。換句話說,你給observe函數(shù)傳遞了一個(gè)不明確的參數(shù)。

轉(zhuǎn)載地址:http://www.denisdeng.com/?p=720

原文地址:http://www.ibm.com/developerworks/web/library/wa-jsframeworks/index.html

生活不易,碼農(nóng)辛苦
如果您覺得本網(wǎng)站對(duì)您的學(xué)習(xí)有所幫助,可以手機(jī)掃描二維碼進(jìn)行捐贈(zèng)
程序員人生
------分隔線----------------------------
分享到:
------分隔線----------------------------
關(guān)閉
程序員人生
主站蜘蛛池模板: 亚洲欧美日韩中文字幕网址 | 91久久精品一区二区三区 | 国产精品男人的天堂 | 亚洲精品一区二区三区四区五区 | 青青自拍视频一区二区三区 | 亚洲男人精品 | 国产欧美亚洲专区第一页 | www.日| 午夜影院啪啪 | 国产丝袜福利视频在线播放 | 美女色哟哟 | 高清freexxxx性 | 午夜羞羞 | 国产视频久久久久 | 亚洲第一色在线 | 污污成人一区二区三区四区 | 久久久久久久岛国免费观看 | 一级毛片一级毛片一级毛片aa | 毛片女人毛片一级毛片毛片 | 成人亚洲精品一区二区 | 久久精品一区二区三区中文字幕 | 日韩精品欧美激情亚洲综合 | 欧美一级久久久久久久大片动画 | xxxxx网| 性生活国产 | 国产精品亚洲欧美大片在线看 | 欧美特级午夜一区二区三区 | 亚洲不卡在线观看 | 一级特黄特黄毛片欧美的 | 亚洲欧洲一区二区 | 久久精品视频5 | 国产成人高清精品免费5388密 | 一级毛片短视频 | free日韩性公交车上xxhd | 亚洲精品专区一区二区欧美 | 国产成人精品亚洲午夜麻豆 | 免费不卡视频 | 性欧美18一19| 欧美一二三 | 自拍偷拍免费视频 | www国产精品com |