ul有N個子元素li(這里只寫了3個),如果我要響應每一個li的事件,那么常規的方法就是需要給所有的li都單獨綁定一個事件監聽,這樣寫法很符合邏輯,但是同時有顯得繁瑣
因為li都有一個共同的父元素,而且所有的事件都是一致的,這里我們可以采用要一個技巧來處理,也是常說的"事件委托"
事件沒直接和li元素發生關系,而且綁定父元素了。由于瀏覽器有事件冒泡的這個特性,我們可以在觸發li的時候把這個事件往上冒泡到ul上,因為ul上綁定事件響應所以就能夠觸發這個動作了。唯一的問題怎么才知道觸發的li元素是哪個一個?
因為li都有一個共同的父元素,而且所有的事件都是一致的,這里我們可以采用要一個技巧來處理,也是常說的"事件委托"
事件沒直接和li元素發生關系,而且綁定父元素了。由于瀏覽器有事件冒泡的這個特性,我們可以在觸發li的時候把這個事件往上冒泡到ul上,因為ul上綁定事件響應所以就能夠觸發這個動作了。唯一的問題怎么才知道觸發的li元素是哪個一個?
2018-01-22
重點在 $("button:first").trigger('click','last');直接引用了第一個按鈕的事件,'last'傳給bottonName做參數,所以點擊第二個按鈕,bottonName =“last”,接下來就是update()函數了,update(firstq,lastq,bottonName) 在第一個按鈕點擊事件時first,last,已經傳入參數$("span:first"),$("span:last"),也就是顯示內容的首位名稱和第二位數字,接下來update()函數里面把first.text()根據點擊改括號里面內容,last或first數字同理
2018-01-21
第36行如果將trigger()改為click()也可以自動觸發事件,所以說trigger的強大不在于它能夠觸發瀏覽器事件,說實話老師有點本末倒置了。但從這個例子中能看出trigger能實現交叉傳輸數據完成一些較為復雜的事件處理程序,這是他最大的功能!其次說trigger能實現自定義事件,但是自定義事件無法與用戶交互的,只能通過在代碼中自執行,我想完全可以使用回調函數代替這種所謂的自定義事件。而且自定義函數在定義時需要使用on(),學完這一章發現js中的事件監聽模式的寫法在jquery中完全被拋棄~\(≧▽≦)/~啦啦啦,太好了都是同一種功能為啥分那么多種編譯形式。
2017-12-30
通過對e.key的操作得知:鍵盤事件發生后都能實時知道鍵盤事件發生在哪個鍵上。但是keydown和keyup可以讀取功能、定位、編輯以及復合(例摁下shift與字母會變大寫能讀準確的大寫)而且在輸入漢字時顯示的是process(加工處理后的key值),我想搜狗各種拼寫軟件其實就是定向的加工了e.key的值。而keypress只能讀取字母、數字等ANSI字符不能讀取加工后的key值(也就是說keypress中包含的能處理的信息較少)老師在這里使用e.target.value僅僅是想告訴我們keypress事件是提前于表單讀取值的
2017-12-29