模拟敲鼓效果,当按下A, S, D, F, G, H, J, K, L 时会产生相应的动画和声音。
const
: 声明一个只读的常量,标识符的值只能赋值一次。具体请看Constants-命令
字符串 ${ 变量、属性名 }
:模板字面量(Template literals)中用于表示模板字符串的标识。特点是字符串首尾用反引号(`),内部的模板部分用 ${ } 括起来表示. 具体请看模版字符串
var customer = { name: "Foo" }
var card = { amount: 7, product: "Bar", unitprice: 42 }
var message = `Hello ${customer.name},
want to buy ${card.amount} ${card.product} for
a total of ${card.amount * card.unitprice} bucks?`
注意函数体内的this对象,就是定义时所在的对象,而不是使用时所在的对象。具体请看阮一峰 箭头函数 廖雪峰箭头函数
### jQuery对象与DOM对象
jQuery 对象就是通过jQuery包装DOM对象后产生的对象。jQuery对象是jQuery独有的。 jQuery 对象中无法使用DOM对象的任何方法。同样,DOM对象也不能使用jQuery里的方法
var domObj = document.getElementById("id") // DOM对象
var $jqueryObj = $('#id') //jquery 对象
//命名
var $variable = jQuery 对象
var variable = DOM 对象
jQuery 提供两种方法将jQuery对象转化为DOM对象,[index]
和get(index)
var $cr = $("#cr") //jQuery对象
var cr = $cr[0] // DOM对象
var $cr = $("#cr") //jQuery对象
var cr = $cr.get(0) // DOM对象
对于一个DOM对象,只需要用$()
吧DOM对象包装起来,就可以获得一个jQuery对象。
var cr = document.getElementById("cr") //DOM对象
var $cr = $(cr) //jQuery对象
.on( events [, selector ] [, data ], handler )
Description: Attach an event handler function for one or more events to the selected elements. 具体请看.on()
.each( function )
Description: Iterate over a jQuery object, executing a function for each matched element.
$keys.each(()=>$(this).on('transitionend',removeTransition))//runtime error
function removeTransition(e,){
if(e.originalEvent.propertyName!== 'transform') return
$(this).removeClass('playing')
}
在上面已经说过了,注意函数体内的this对象,就是定义时所在的对象,而不是使用时所在的对象。
箭头函数中this
指向全局变量window
正确的做法:
$keys.each(function () {
$(this).on('transitionend',removeTransition)
})
上面函数中this
指向$keys数组中的对象