課程
/前端開(kāi)發(fā)
/jQuery
/jQuery基礎(chǔ)(三)—事件篇
不是要采用事件委托嗎?為什么不用這樣寫(xiě):$("ul").on('click',‘li',function(e)
2016-07-14
源自:jQuery基礎(chǔ)(三)—事件篇 6-1
正在回答
$("ul").on('click',‘li',function(e){}就拿這個(gè)來(lái)說(shuō)吧,如果 你把$("ul")改為$("body")那么整個(gè)頁(yè)面內(nèi)的里點(diǎn)擊都會(huì)觸發(fā)事件(只有點(diǎn)擊li),如果on('click',‘li',function(e){}的li去掉那么你點(diǎn)擊任何子元素都會(huì)觸發(fā)事件,所以這里的ul和li起的作用更像是確定冒泡范圍(ul)和篩選(li)的作用,純屬新手個(gè)人理解,不對(duì)勿噴
你可以這么想,我們宿舍有6個(gè)人,我是其中一個(gè),有人挑釁了我,也相當(dāng)于有人挑釁了我們宿舍,也就是冒泡的理念,click了我就是click了我們宿舍,這里有沒(méi)有l(wèi)i都可以實(shí)現(xiàn),當(dāng)然其實(shí)這里面是有區(qū)別的(只是這個(gè)細(xì)節(jié)用不到)
1、有l(wèi)i的情況下,可以這么理解,給li添加click事件,然后把事情委托給ul,這個(gè)事件是li的,不是ul的,(沒(méi)有為ul添加click事件)
2、沒(méi)有 li的情況,可以這么理解,給ul及ul中的所有元素(包括li)添加click事件,(給ul添加了click事件)
實(shí)驗(yàn)方法
在沒(méi)有l(wèi)i的情況:點(diǎn)擊li選項(xiàng),會(huì)提示li時(shí)的內(nèi)容,
? ? ? ? ? ? ? ? ? ? ? ? 點(diǎn)擊ul(只是ul沒(méi)有點(diǎn)擊到li,也就是點(diǎn)小黑點(diǎn)的前面),會(huì)出現(xiàn)ul的內(nèi)容(包含ul所有的內(nèi)容)
有l(wèi)i的情況:你執(zhí)行上面的動(dòng)作,你會(huì)發(fā)現(xiàn)第二個(gè)動(dòng)作沒(méi)有效果,那是因?yàn)閡l根本就沒(méi)有click事件
click默認(rèn)情況下并不冒泡,在這時(shí)也沒(méi)有執(zhí)行冒泡,只不過(guò)你打了就相當(dāng)于打了我們宿舍也算是冒泡的理念吧,也就是說(shuō)你單擊了ul中的li,難道說(shuō)你沒(méi)有單擊ul嗎?在書(shū)上有幾個(gè)字,書(shū)是ul,字是li,你看了字,你難道說(shuō)你沒(méi)有看書(shū)嗎?
慕妹7508549
同樣新手,不對(duì)勿怪。就我愚見(jiàn),課程里根本沒(méi)有事件委托。事件也不是在 li 上觸發(fā)的,是li冒泡到ul觸發(fā)的,而event.target.Content是當(dāng)前點(diǎn)擊元素的內(nèi)容。li是源點(diǎn)擊對(duì)象,所以體現(xiàn)出來(lái)的是點(diǎn)什么,顯示什么。其實(shí)是ul干的活,li署的名。
如果事件委托是這樣的:?$("ul").on('click',"li",function(e){?????????? alert('觸發(fā)的元素是內(nèi)容是: ' + this.textContent)??????? })???????? this就能實(shí)現(xiàn),這是li自己干的活,自己領(lǐng)功。
好吃的蛋包飯
加不加li的區(qū)別大致就在于,不加li點(diǎn)擊ul也會(huì)觸發(fā),但是加了以后只觸發(fā)li元素。
雖然是同樣的效果,前面不加li的話點(diǎn)擊ul里所有的元素都會(huì)被觸發(fā),加了li只會(huì)讓里面的li元素觸發(fā)
舉報(bào)
jQuery第三階段開(kāi)啟事件修煉,掌握對(duì)頁(yè)面進(jìn)行交互的操作
4 回答事件委托應(yīng)該委托到哪一級(jí)?
1 回答$("#test1").on('click', function(e) { $(this).text('觸發(fā)事件:' + e.type) })這行代碼里e指的是哪個(gè)變量,e.type為什么是click
1 回答$("body").on("click","a",function) 和 $("a").on("click",function) 的作用是一樣的吧?
6 回答$("ul").on('click', ".deleteon", function(){ $(this).parent().remove(); }); ??
1 回答function (e) 有e 和沒(méi)有e 有區(qū)別嗎?什么時(shí)候要寫(xiě)e
Copyright ? 2025 imooc.com All Rights Reserved | 京ICP備12003892號(hào)-11 京公網(wǎng)安備11010802030151號(hào)
購(gòu)課補(bǔ)貼聯(lián)系客服咨詢(xún)優(yōu)惠詳情
慕課網(wǎng)APP您的移動(dòng)學(xué)習(xí)伙伴
掃描二維碼關(guān)注慕課網(wǎng)微信公眾號(hào)
2017-06-03
$("ul").on('click',‘li',function(e){}就拿這個(gè)來(lái)說(shuō)吧,如果 你把$("ul")改為$("body")那么整個(gè)頁(yè)面內(nèi)的里點(diǎn)擊都會(huì)觸發(fā)事件(只有點(diǎn)擊li),如果on('click',‘li',function(e){}的li去掉那么你點(diǎn)擊任何子元素都會(huì)觸發(fā)事件,所以這里的ul和li起的作用更像是確定冒泡范圍(ul)和篩選(li)的作用,純屬新手個(gè)人理解,不對(duì)勿噴
2016-10-27
你可以這么想,我們宿舍有6個(gè)人,我是其中一個(gè),有人挑釁了我,也相當(dāng)于有人挑釁了我們宿舍,也就是冒泡的理念,click了我就是click了我們宿舍,這里有沒(méi)有l(wèi)i都可以實(shí)現(xiàn),當(dāng)然其實(shí)這里面是有區(qū)別的(只是這個(gè)細(xì)節(jié)用不到)
1、有l(wèi)i的情況下,可以這么理解,給li添加click事件,然后把事情委托給ul,這個(gè)事件是li的,不是ul的,(沒(méi)有為ul添加click事件)
2、沒(méi)有 li的情況,可以這么理解,給ul及ul中的所有元素(包括li)添加click事件,(給ul添加了click事件)
實(shí)驗(yàn)方法
在沒(méi)有l(wèi)i的情況:點(diǎn)擊li選項(xiàng),會(huì)提示li時(shí)的內(nèi)容,
? ? ? ? ? ? ? ? ? ? ? ? 點(diǎn)擊ul(只是ul沒(méi)有點(diǎn)擊到li,也就是點(diǎn)小黑點(diǎn)的前面),會(huì)出現(xiàn)ul的內(nèi)容(包含ul所有的內(nèi)容)
有l(wèi)i的情況:你執(zhí)行上面的動(dòng)作,你會(huì)發(fā)現(xiàn)第二個(gè)動(dòng)作沒(méi)有效果,那是因?yàn)閡l根本就沒(méi)有click事件
click默認(rèn)情況下并不冒泡,在這時(shí)也沒(méi)有執(zhí)行冒泡,只不過(guò)你打了就相當(dāng)于打了我們宿舍也算是冒泡的理念吧,也就是說(shuō)你單擊了ul中的li,難道說(shuō)你沒(méi)有單擊ul嗎?在書(shū)上有幾個(gè)字,書(shū)是ul,字是li,你看了字,你難道說(shuō)你沒(méi)有看書(shū)嗎?
2016-08-10
同樣新手,不對(duì)勿怪。就我愚見(jiàn),課程里根本沒(méi)有事件委托。事件也不是在 li 上觸發(fā)的,是li冒泡到ul觸發(fā)的,而event.target.Content是當(dāng)前點(diǎn)擊元素的內(nèi)容。li是源點(diǎn)擊對(duì)象,所以體現(xiàn)出來(lái)的是點(diǎn)什么,顯示什么。其實(shí)是ul干的活,li署的名。
如果事件委托是這樣的:?$("ul").on('click',"li",function(e){
?????????? alert('觸發(fā)的元素是內(nèi)容是: ' + this.textContent)
??????? })???????? this就能實(shí)現(xiàn),這是li自己干的活,自己領(lǐng)功。
2016-07-15
加不加li的區(qū)別大致就在于,不加li點(diǎn)擊ul也會(huì)觸發(fā),但是加了以后只觸發(fā)li元素。
2016-07-14
雖然是同樣的效果,前面不加li的話點(diǎn)擊ul里所有的元素都會(huì)被觸發(fā),加了li只會(huì)讓里面的li元素觸發(fā)