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