1.置換/クローン:
クローン:var $ newImg = $ img.clone()
2.イベント:
標準:
1.通常のバインディング:$()。On( "event name"、function(){...})
.addEventListener(...);
バインド解除:$()。オフ( "イベント名"、元の関数オブジェクト)
2.バブリングを使用します。
$ parent.on( "イベント名"、 "判定条件セレクター"、function(){
this-> e.target
})
2つの利点:
1.「判定条件セレクター」を自動的に使用して、関数の実行に入る前に条件を満たす要素をフィルターします。
2. eとe.targetを書かずにthis-> e.targetを変更します
21の一般的なイベントは、省略形で提供されます:$()。イベント名(ハンドラー関数)
ページが読み込まれた後、次を実行します。
1. DOMコンテンツが読み込まれた後、事前にのみ実行:DOMContentLoaded
DOMコンテンツのみを待つ:HTMLおよびJS
実行可能:イベントバインディング、要素のコンテンツの追加/削除/トラバース/変更
実行できません:CSSの取得/変更、画像サイズの取得
方法:$(ドキュメント).ready(関数(){...})
$()。ready(function(){...})
$(function(){...})
概要:ほとんどすべてのjQueryコードは$(function(){...})に配置する必要があります
2.すべてのページコンテンツが読み込まれた後、それだけを実行します:window.onload
すべてのWebコンテンツを待ちます:HTML、CSS、JS、画像
すべての実行可能ファイル
方法:$(ウィンドウ).load(関数(){...})
概要:CSSと画像に依存するコードのみが$(ウィンドウ).load()に配置されます
マウスイベント:
マウスオーバーマウスアウトの問題:
子要素の頻繁な出入りもバブルして、親要素でマウスイベントをトリガーします
jQueryはmouseenterとmouseleaveに置き換えられました
利点:子要素の出入りが頻繁であっても、親要素でマウスイベントをトリガーするためにバブルしません。
mouseenterとmouseleaveを同時にバインドする場合、ホバーをバインドするだけで済みます。
$()。hover(// mouseenter + mouseleave
function(){...}、//给mouseenter
function(){...} //给mouseleave
)
2つの処理関数が1つの処理関数にマージされた場合、実際には、1つの処理関数を記述します。
アナログトリガー:ボタン処理機能は、ボタンをクリックすることなく、コードを2回記述することなく実行できます。
$(btn).trigger( "事件名")$(btn).trigger( "クリック")
実際、次のように省略できます:$(btn).click()
3.アニメーション:
1.シンプルなアニメーション:死者を書くことの3つの固定アニメーション効果:
1.非表示を表示:.show().hide().toggle()
パラメータなしの場合、display:block / noneがデフォルトで使用され、ディスプレイの非表示、瞬間的な変更、アニメーション効果なしを制御します
期間パラメータを指定します:.show(ms).hide(ms).toggle(ms)
2.上下にスライド:.slideUp(ms).slideDown(ms).slideToggle()
3.フェードインおよびフェードアウト:.fadeIn(ms).fadeOut(ms).fadeToggle()
質問1:jsコードでデッドコードを記述することの影響は維持できません
質問2:jsタイマーによって実現されるアニメーション効果は、cssアニメーションほど効率的ではありません
2.ユニバーサルアニメーション:css属性にアニメーション効果を実装できます
$().animate({
css属性:目标值,
... : ...
},持续ms)
强调: 只支持单个数值的属性
不支持:不是数值的属性
不支持颜色渐变——不如transition
排队和并发:
排队: 多个css属性先后依次变化
并发: 多个css属性同时变化
放在一个animate函数内的多个css属性是并发变化
停止动画: $().stop();
问题: 默认只能停止队列中正在播放的一个动画,后续动画依然会执行
解决: $().stop(true) 停止当前动画并清空队列
选择器: :animated 选择和判断正在播放动画的元素
动画播放后执行:
每个动画API都有最后一个参数——回调函数
回调函数会在动画播放后自动调用执行
总结: 首选CSS: 效率高,可维护
和交互有关的动画,只能用JS定时器/JQUERY
和动态添加/删除DOM元素有关的动画,也必须用JS定时器/jQuery
4. 类数组操作:
2个API:
1. 遍历:
//实例方法
$()->jQuery()->new jQuery()
$().each(function(i,elem){ //forEach(function(elem,i,arr))
//i 获得当前位置
//elem 获得当前元素对象
})
//静态方法
//$->jQuery
$.each(类数组对象/数组,function(i,elem){
})
2. 查找:
$("所有元素").index("要找的元素")
在"所有元素"的jQuery对象中,查找"要找的元素"的位置
如果在同一个父元素下找子元素的位置:
$(要找的子元素).index()
5. 添加自定义API:
其实就是在jQuery的原型对象中添加自定义函数:
jQuery.fn=jQuery.prototype
定义新函数:
jQuery.fn.新函数=function(){
}
调用新函数:
$(...).新函数()