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