Angularjs中事件指令有哪些

這篇文章給大家分享的是有關(guān)Angularjs中事件指令有哪些的內(nèi)容。小編覺(jué)得挺實(shí)用的,因此分享給大家做個(gè)參考,一起跟隨小編過(guò)來(lái)看看吧。

創(chuàng)新互聯(lián)建站-專業(yè)網(wǎng)站定制、快速模板網(wǎng)站建設(shè)、高性價(jià)比札達(dá)網(wǎng)站開(kāi)發(fā)、企業(yè)建站全套包干低至880元,成熟完善的模板庫(kù),直接使用。一站式札達(dá)網(wǎng)站制作公司更省心,省錢,快速模板網(wǎng)站建設(shè)找我們,業(yè)務(wù)覆蓋札達(dá)地區(qū)。費(fèi)用合理售后完善,10多年實(shí)體公司更值得信賴。

ngClick

適用標(biāo)簽:所有
觸發(fā)條件:?jiǎn)螕?/p>

#html
<div ng-controller="LearnCtrl">
  <div ng-click="click()">click me</div>
  <button ng-click="click()">click me</button>
</div>

#script
angular.module('learnModule', [])

    .controller('LearnCtrl', function ($scope) {
      $scope.click = function () {
        alert('click');
      }
    });

ngDblclick

適用標(biāo)簽:所有
觸發(fā)條件:雙擊

#html
<div ng-controller="LearnCtrl">
  <div ng-dblclick="dblclick()">click me</div>
  <button ng-dblclick="dblclick()">click me</button>
</div>

#script
angular.module('learnModule', [])

    .controller('LearnCtrl', function ($scope) {
      $scope.dblclick = function () {
        alert('click');
      }
    });

ngBlur

適用標(biāo)簽:

  • a

  • input

  • select

  • textarea

觸發(fā)條件:失去焦點(diǎn)

#html
<div ng-controller="LearnCtrl">
  <a href="" ng-blur=" rel="external nofollow" blur()">link</a>

  <input type="text" ng-blur="blur()"/>
  <textarea cols="30" rows="10" ng-blur="blur()"></textarea>
  <select ng-blur="blur()">
    <option>----</option>
    <option>jacky</option>
    <option>rose</option>
  </select>
</div>

#script
angular.module('learnModule', [])

    .controller('LearnCtrl', function ($scope) {
      $scope.blur = function () {
        alert('blur');
      }
    });

ngFocus

適用標(biāo)簽:

  1. a

  2. input

  3. select

  4. textarea

觸發(fā)條件:獲取焦點(diǎn)

#html
<div ng-controller="LearnCtrl">
  <a href="" ng-focus=" rel="external nofollow" focus()">link</a>

  <input type="text" ng-focus="focus()"/>
  <textarea cols="30" rows="10" ng-focus="focus()"></textarea>
  <select ng-focus="focus()">
    <option>----</option>
    <option>jacky</option>
    <option>rose</option>
  </select>
</div>

#script
angular.module('learnModule', [])

    .controller('LearnCtrl', function ($scope) {
      $scope.focus= function () {
        alert('focus');
      }
    });

ngChange

適用標(biāo)簽:input
觸發(fā)條件:model更新

輸入框的內(nèi)容改變并不代表model的值更新。按我的理解,一般當(dāng)兩個(gè)狀態(tài)互相切換時(shí),model值會(huì)更新。兩個(gè)狀態(tài)我稱之為合法狀態(tài)和不合法狀態(tài)。

不合法的狀態(tài):輸入的內(nèi)容不符合type類型,如email類型。輸入的內(nèi)容不符合校驗(yàn)條件,如ngMinlength。不合法的狀態(tài)下,model會(huì)被更新成undefined。

合法的狀態(tài):輸入的內(nèi)容是符合類型和校驗(yàn)條件的。

#html
<div ng-controller="LearnCtrl">
  <input type="text" ng-model="text" ng-change="change()" ng-minlength="5"/>
</div>

#script
angular.module('learnModule', [])

    .controller('LearnCtrl', function ($scope) {
      //$scope.text='';
      $scope.change = function () {
        alert('change');
      }      
    });

初始化和不初始化text的條件下,change觸發(fā)是不一樣的哦,這里涉及到model初始化和更新機(jī)制。

ngCopy

適用標(biāo)簽:

  1. a

  2. input

  3. select

  4. textarea

官方api上說(shuō)使用的標(biāo)簽是這些,我沒(méi)明白a和select復(fù)制有啥子用。另外,我換個(gè)div實(shí)際上也能觸發(fā)copy事件。一般常用的就是input和textarea。

觸發(fā)條件:復(fù)制。鼠標(biāo)右鍵復(fù)制和快捷鍵Ctrl+C都會(huì)觸發(fā)。

#html
<div ng-controller="LearnCtrl">
  <input type="text" ng-copy="copy()"/>
  <textarea cols="30" rows="10" ng-copy="copy()"></textarea>
</div>

#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都會(huì)觸發(fā)。

#html
<div ng-controller="LearnCtrl">
  <input type="text" ng-cut="cut()"/>
  <textarea cols="30" rows="10" ng-cut="cut()"></textarea>
</div>

#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都會(huì)觸發(fā)。

#html
<div ng-controller="LearnCtrl">
  <input type="text" ng-paste="paste()"/>
  <textarea cols="30" rows="10" ng-paste="paste()"></textarea>
</div>

#script
angular.module('learnModule', [])

    .controller('LearnCtrl', function ($scope) {
      $scope.paste = function () {
        alert('paste');
      }
    });

ngKeydown

適用標(biāo)簽:所有

個(gè)人感覺(jué)還是input和textarea比較常用

觸發(fā)條件:鍵盤(pán)按鍵按下

要把$event傳過(guò)去,一般都是要判斷按了哪個(gè)按鍵的。

#html
<div ng-controller="LearnCtrl">
  <input type="text" ng-keydown="keydown($event)"/>
  <textarea cols="30" rows="10" ng-keydown="keydown($event)"></textarea>
</div>

#script
angular.module('learnModule', [])

    .controller('LearnCtrl', function ($scope) {
      $scope.keydown = function ($event) {
        alert($event.keyCode);
      }
    });

ngKeyup

適用標(biāo)簽:所有

個(gè)人感覺(jué)還是input和textarea比較常用

觸發(fā)條件:鍵盤(pán)按鍵按下并松開(kāi)

#html
<div ng-controller="LearnCtrl">
  <input type="text" ng-keyup="keyup($event)"/>
  <textarea cols="30" rows="10" ng-keyup="keyup($event)"></textarea>
</div>

#script
angular.module('learnModule', [])

    .controller('LearnCtrl', function ($scope) {
      $scope.keyup = function ($event) {
        alert($event.keyCode);
      }
    });

ngKeypress

適用標(biāo)簽:所有

個(gè)人感覺(jué)還是input和textarea比較常用

觸發(fā)條件:鍵盤(pán)按鍵按下

#html
<div ng-controller="LearnCtrl">
  <input type="text" ng-keypress="keypress($event)"/>
  <textarea cols="30" rows="10" ng-keypress="keypress($event)"></textarea>
</div>

#script
angular.module('learnModule', [])

    .controller('LearnCtrl', function ($scope) {
      $scope.keypress = function ($event) {
        alert($event.keyCode);
      }
    });

keydown,keypress,keydown三者區(qū)別

引發(fā)事件的按鍵

非字符鍵不會(huì)引發(fā) KeyPress 事件,但非字符鍵卻可以引發(fā) KeyDown 和 KeyUp 事件。

事件引發(fā)的時(shí)間

KeyDown 和 KeyPress 事件在按下鍵時(shí)發(fā)生,KeyUp 事件在釋放鍵時(shí)發(fā)生。

事件發(fā)生的順序

KeyDown -> KeyPress -> KeyUp。如果按一個(gè)鍵很久才松開(kāi),發(fā)生的事件為:KeyDown -> KeyPress -> KeyDown -> KeyPress -> KeyDown -> KeyPress -> ... -> KeyUp。

  • KeyDown觸發(fā)后,不一定觸發(fā)KeyUp,當(dāng)KeyDown 按下后,拖動(dòng)鼠標(biāo),那么將不會(huì)觸發(fā)KeyUp事件。

  • KeyPress主要用來(lái)捕獲數(shù)字(注意:包括Shift+數(shù)字的符號(hào))、字母(注意:包括大小寫(xiě))、小鍵盤(pán)等除了F1-12、SHIFT、Alt、Ctrl、Insert、Home、PgUp、Delete、End、PgDn、ScrollLock、Pause、NumLock、{菜單鍵}、{開(kāi)始鍵}和方向鍵外的ANSI字符。

  • KeyDown 和KeyUp 通??梢圆东@鍵盤(pán)除了PrScrn所有按鍵(這里不討論特殊鍵盤(pán)的特殊鍵)。

  • KeyPress 只能捕獲單個(gè)字符。

  • KeyDown 和KeyUp 可以捕獲組合鍵。

  • KeyPress 可以捕獲單個(gè)字符的大小寫(xiě)。

  • KeyDown和KeyUp 對(duì)于單個(gè)字符捕獲的KeyValue 都是一個(gè)值,也就是不能判斷單個(gè)字符的大小寫(xiě)。

  • KeyPress 不區(qū)分小鍵盤(pán)和主鍵盤(pán)的數(shù)字字符。

  • KeyDown 和KeyUp 區(qū)分小鍵盤(pán)和主鍵盤(pán)的數(shù)字字符。

  • 其中PrScrn 按鍵KeyPress、KeyDown和KeyUp 都不能捕獲。

ngMousedown

適用標(biāo)簽:所有
觸發(fā)條件:鼠標(biāo)按下,左右中間按下都會(huì)觸發(fā)

#html
<div ng-controller="LearnCtrl">
  <button ng-mousedown="mousedown($event)">button</button>
</div>

#script
angular.module('learnModule', [])

    .controller('LearnCtrl', function ($scope) {
      $scope.mousedown = function ($event) {
        alert($event.which);
      }
    });

ngMouseup

適用標(biāo)簽:所有
觸發(fā)條件:鼠標(biāo)按下彈起,左右中間按下彈起都會(huì)觸發(fā)

#html
<div ng-controller="LearnCtrl">
  <button ng-mouseup="mouseup($event)">button</button>
</div>

#script
angular.module('learnModule', [])

    .controller('LearnCtrl', function ($scope) {
      $scope.mouseup = function ($event) {
        alert($event.which);
      }
    });

ngMouseenter

適用標(biāo)簽:所有
觸發(fā)條件:鼠標(biāo)進(jìn)入

#html
<div ng-controller="LearnCtrl">
  <button ng-mouseenter="mouseenter()">button</button>
</div>

#script
angular.module('learnModule', [])

    .controller('LearnCtrl', function ($scope) {
      $scope.mouseenter = function () {
        alert('mouseenter');
      }
    });

ngMouseleave

適用標(biāo)簽:所有
觸發(fā)條件:鼠標(biāo)離開(kāi)

#html
<div ng-controller="LearnCtrl">
  <button ng-mouseleave="mouseleave()">button</button>
</div>

#script
angular.module('learnModule', [])

    .controller('LearnCtrl', function ($scope) {
      $scope.mouseleave = function () {
        alert('mouseleave');
      }
    });

ngMousemove

適用標(biāo)簽:所有
觸發(fā)條件:鼠標(biāo)移動(dòng)

#html
<div ng-controller="LearnCtrl">
  <button ng-mousemove="mousemove()">button</button>
</div>

#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)容可以對(duì)大家有一定的幫助,讓大家可以學(xué)到更多知識(shí),如果覺(jué)得文章不錯(cuò),可以把它分享出去讓更多的人看到吧!

名稱欄目:Angularjs中事件指令有哪些
網(wǎng)址分享:http://bm7419.com/article36/jdecsg.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供定制網(wǎng)站、微信公眾號(hào)、動(dòng)態(tài)網(wǎng)站、面包屑導(dǎo)航、網(wǎng)站排名、App開(kāi)發(fā)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

h5響應(yīng)式網(wǎng)站建設(shè)