這篇文章給大家分享的是有關(guān)Angularjs中事件指令有哪些的內(nèi)容。小編覺得挺實用的,因此分享給大家做個參考,一起跟隨小編過來看看吧。
創(chuàng)新互聯(lián)建站-專業(yè)網(wǎng)站定制、快速模板網(wǎng)站建設(shè)、高性價比札達(dá)網(wǎng)站開發(fā)、企業(yè)建站全套包干低至880元,成熟完善的模板庫,直接使用。一站式札達(dá)網(wǎng)站制作公司更省心,省錢,快速模板網(wǎng)站建設(shè)找我們,業(yè)務(wù)覆蓋札達(dá)地區(qū)。費(fèi)用合理售后完善,10多年實體公司更值得信賴。
ngClick
適用標(biāo)簽:所有
觸發(fā)條件:單擊
#html#script angular.module('learnModule', []) .controller('LearnCtrl', function ($scope) { $scope.click = function () { alert('click'); } });click me
ngDblclick
適用標(biāo)簽:所有
觸發(fā)條件:雙擊
#html#script angular.module('learnModule', []) .controller('LearnCtrl', function ($scope) { $scope.dblclick = function () { alert('click'); } });click me
ngBlur
適用標(biāo)簽:
a
input
select
textarea
觸發(fā)條件:失去焦點
#html #script angular.module('learnModule', []) .controller('LearnCtrl', function ($scope) { $scope.blur = function () { alert('blur'); } });
ngFocus
適用標(biāo)簽:
a
input
select
textarea
觸發(fā)條件:獲取焦點
#html #script angular.module('learnModule', []) .controller('LearnCtrl', function ($scope) { $scope.focus= function () { alert('focus'); } });
ngChange
適用標(biāo)簽:input
觸發(fā)條件:model更新
輸入框的內(nèi)容改變并不代表model的值更新。按我的理解,一般當(dāng)兩個狀態(tài)互相切換時,model值會更新。兩個狀態(tài)我稱之為合法狀態(tài)和不合法狀態(tài)。
不合法的狀態(tài):輸入的內(nèi)容不符合type類型,如email類型。輸入的內(nèi)容不符合校驗條件,如ngMinlength。不合法的狀態(tài)下,model會被更新成undefined。
合法的狀態(tài):輸入的內(nèi)容是符合類型和校驗條件的。
#html#script angular.module('learnModule', []) .controller('LearnCtrl', function ($scope) { //$scope.text=''; $scope.change = function () { alert('change'); } });
初始化和不初始化text的條件下,change觸發(fā)是不一樣的哦,這里涉及到model初始化和更新機(jī)制。
ngCopy
適用標(biāo)簽:
a
input
select
textarea
官方api上說使用的標(biāo)簽是這些,我沒明白a和select復(fù)制有啥子用。另外,我換個div實際上也能觸發(fā)copy事件。一般常用的就是input和textarea。
觸發(fā)條件:復(fù)制。鼠標(biāo)右鍵復(fù)制和快捷鍵Ctrl+C都會觸發(fā)。
#html#script angular.module('learnModule', []) .controller('LearnCtrl', function ($scope) { $scope.copy = function () { alert('copy'); } });
ngCut
適用標(biāo)簽:
a
input
select
textarea
觸發(fā)條件:剪切。鼠標(biāo)右鍵剪切和快捷鍵Ctrl+X都會觸發(fā)。
#html#script angular.module('learnModule', []) .controller('LearnCtrl', function ($scope) { $scope.cut = function () { alert('cut'); } });
ngPaste
適用標(biāo)簽:
a input select textarea
觸發(fā)條件:粘貼。鼠標(biāo)右鍵粘貼和快捷鍵Ctrl+V都會觸發(fā)。
#html#script angular.module('learnModule', []) .controller('LearnCtrl', function ($scope) { $scope.paste = function () { alert('paste'); } });
ngKeydown
適用標(biāo)簽:所有
個人感覺還是input和textarea比較常用
觸發(fā)條件:鍵盤按鍵按下
要把$event傳過去,一般都是要判斷按了哪個按鍵的。
#html#script angular.module('learnModule', []) .controller('LearnCtrl', function ($scope) { $scope.keydown = function ($event) { alert($event.keyCode); } });
ngKeyup
適用標(biāo)簽:所有
個人感覺還是input和textarea比較常用
觸發(fā)條件:鍵盤按鍵按下并松開
#html#script angular.module('learnModule', []) .controller('LearnCtrl', function ($scope) { $scope.keyup = function ($event) { alert($event.keyCode); } });
ngKeypress
適用標(biāo)簽:所有
個人感覺還是input和textarea比較常用
觸發(fā)條件:鍵盤按鍵按下
#html#script angular.module('learnModule', []) .controller('LearnCtrl', function ($scope) { $scope.keypress = function ($event) { alert($event.keyCode); } });
keydown,keypress,keydown三者區(qū)別
引發(fā)事件的按鍵
非字符鍵不會引發(fā) KeyPress 事件,但非字符鍵卻可以引發(fā) KeyDown 和 KeyUp 事件。
事件引發(fā)的時間
KeyDown 和 KeyPress 事件在按下鍵時發(fā)生,KeyUp 事件在釋放鍵時發(fā)生。
事件發(fā)生的順序
KeyDown -> KeyPress -> KeyUp。如果按一個鍵很久才松開,發(fā)生的事件為:KeyDown -> KeyPress -> KeyDown -> KeyPress -> KeyDown -> KeyPress -> ... -> KeyUp。
KeyDown觸發(fā)后,不一定觸發(fā)KeyUp,當(dāng)KeyDown 按下后,拖動鼠標(biāo),那么將不會觸發(fā)KeyUp事件。
KeyPress主要用來捕獲數(shù)字(注意:包括Shift+數(shù)字的符號)、字母(注意:包括大小寫)、小鍵盤等除了F1-12、SHIFT、Alt、Ctrl、Insert、Home、PgUp、Delete、End、PgDn、ScrollLock、Pause、NumLock、{菜單鍵}、{開始鍵}和方向鍵外的ANSI字符。
KeyDown 和KeyUp 通常可以捕獲鍵盤除了PrScrn所有按鍵(這里不討論特殊鍵盤的特殊鍵)。
KeyPress 只能捕獲單個字符。
KeyDown 和KeyUp 可以捕獲組合鍵。
KeyPress 可以捕獲單個字符的大小寫。
KeyDown和KeyUp 對于單個字符捕獲的KeyValue 都是一個值,也就是不能判斷單個字符的大小寫。
KeyPress 不區(qū)分小鍵盤和主鍵盤的數(shù)字字符。
KeyDown 和KeyUp 區(qū)分小鍵盤和主鍵盤的數(shù)字字符。
其中PrScrn 按鍵KeyPress、KeyDown和KeyUp 都不能捕獲。
ngMousedown
適用標(biāo)簽:所有
觸發(fā)條件:鼠標(biāo)按下,左右中間按下都會觸發(fā)
#html#script angular.module('learnModule', []) .controller('LearnCtrl', function ($scope) { $scope.mousedown = function ($event) { alert($event.which); } });
ngMouseup
適用標(biāo)簽:所有
觸發(fā)條件:鼠標(biāo)按下彈起,左右中間按下彈起都會觸發(fā)
#html#script angular.module('learnModule', []) .controller('LearnCtrl', function ($scope) { $scope.mouseup = function ($event) { alert($event.which); } });
ngMouseenter
適用標(biāo)簽:所有
觸發(fā)條件:鼠標(biāo)進(jìn)入
#html#script angular.module('learnModule', []) .controller('LearnCtrl', function ($scope) { $scope.mouseenter = function () { alert('mouseenter'); } });
ngMouseleave
適用標(biāo)簽:所有
觸發(fā)條件:鼠標(biāo)離開
#html#script angular.module('learnModule', []) .controller('LearnCtrl', function ($scope) { $scope.mouseleave = function () { alert('mouseleave'); } });
ngMousemove
適用標(biāo)簽:所有
觸發(fā)條件:鼠標(biāo)移動
#html#script angular.module('learnModule', []) .controller('LearnCtrl', function ($scope) { $scope.mousemove = function () { alert('mousemove'); } });
ngMouseover
適用標(biāo)簽:所有
觸發(fā)條件:鼠標(biāo)進(jìn)入
感謝各位的閱讀!關(guān)于“Angularjs中事件指令有哪些”這篇文章就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,讓大家可以學(xué)到更多知識,如果覺得文章不錯,可以把它分享出去讓更多的人看到吧!