最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

jQuery事件用法詳解

 更新時(shí)間:2016年10月06日 07:07:01   作者:jcuan  
這篇文章主要為大家詳細(xì)介紹了jQuery事件用法,具有一定的參考價(jià)值,感興趣的朋友可以參考一下

JavaScript在瀏覽器中以單線程模式運(yùn)行,頁面加載后,一旦頁面上所有的JavaScript代碼被執(zhí)行完后,就只能依賴觸發(fā)事件來執(zhí)行JavaScript代碼。

我們可以用jQuery這樣綁定一個(gè)click事件:

/* HTML:
 *
 * <a id="test-link" href="#0">點(diǎn)我試試</a>
 *
 */

// 獲取超鏈接的jQuery對(duì)象:
var a = $('#test-link');
a.on('click', function () {
  alert('Hello!');
});

on方法用來綁定一個(gè)事件,我們需要傳入事件名稱和對(duì)應(yīng)的處理函數(shù)。
另一種更簡化的寫法是直接調(diào)用click()方法:

a.click(function () {
  alert('Hello!');
});

jQuery能夠綁定的事件

鼠標(biāo)事件

click: 鼠標(biāo)單擊時(shí)觸發(fā);
dblclick:鼠標(biāo)雙擊時(shí)觸發(fā);
mouseenter:鼠標(biāo)進(jìn)入時(shí)觸發(fā);
mouseleave:鼠標(biāo)移出時(shí)觸發(fā);
mousemove:鼠標(biāo)在DOM內(nèi)部移動(dòng)時(shí)觸發(fā);
hover:鼠標(biāo)進(jìn)入和退出時(shí)觸發(fā)兩個(gè)函數(shù),相當(dāng)于mouseenter加上mouseleave。

鍵盤事件
鍵盤事件僅作用在當(dāng)前焦點(diǎn)的DOM上,通常是<input>和<textarea>

keydown:鍵盤按下時(shí)觸發(fā);
keyup:鍵盤松開時(shí)觸發(fā);
keypress:按一次鍵后觸發(fā)

其他事件
ready僅作用于document對(duì)象。由于ready事件在DOM完成初始化后觸發(fā),且只觸發(fā)一次,所以非常適合用來寫其他的初始化代碼。

focus:當(dāng)DOM獲得焦點(diǎn)時(shí)觸發(fā);
blur:當(dāng)DOM失去焦點(diǎn)時(shí)觸發(fā);
change:當(dāng)<input>、<select>或<textarea>的內(nèi)容改變時(shí)觸發(fā);
submit:當(dāng)<form>提交時(shí)觸發(fā);
ready:當(dāng)頁面被載入并且DOM樹完成初始化后觸發(fā)
下面的代碼沒有預(yù)期的效果:

<html>
<head>
  <script>
    // 代碼有誤:
    $('#testForm).on('submit', function () {
      alert('submit!');
    });
  </script>
</head>
<body>
  <form id="testForm">
    ...
  </form>
</body>

因?yàn)镴avaScript在此執(zhí)行的時(shí)候,<form>尚未載入瀏覽器,所以$('#testForm)返回[],并沒有綁定事件到任何DOM上

正確版本:

  <script>
    $(document).on('ready', function () {
      $('#testForm).on('submit', function () {
        alert('submit!');
      });
    });
  </script>

ready事件使用非常普遍,也這樣簡化:

$(document).ready(function () {
  $('#testForm).submit(function () {
    alert('submit!');
  });
});

甚至還可以再簡化為(最為常見):

$(function () {
  // init...
});

可以反復(fù)綁定事件處理函數(shù),它們會(huì)依次執(zhí)行:

$(function () {
  console.log('init A...');
});
$(function () {
  console.log('init B...');
});
$(function () {
  console.log('init C...');
});

事件參數(shù)

有些事件,如mousemove和keypress,我們需要獲取鼠標(biāo)位置和按鍵的值,否則監(jiān)聽這些事件就沒什么意義了。所有事件都會(huì)傳入Event對(duì)象作為參數(shù)(下邊e就是一個(gè)event對(duì)象),可以從Event對(duì)象上獲取到更多的信息:

$(function () {
  $('#testMouseMoveDiv').mousemove(function (e) {
    $('#testMouseMoveSpan').text('pageX = ' + e.pageX + ', pageY = ' + e.pageY);
  });
});

取消綁定

一個(gè)已被綁定的事件可以解除綁定,通過off('click', function)實(shí)現(xiàn):

function hello() {
  alert('hello!');
}

a.click(hello); // 綁定事件

// 10秒鐘后解除綁定:
setTimeout(function () {
  a.off('click', hello);
}, 10000);

可以使用off('click')一次性移除已綁定的click事件的所有處理函數(shù)
無參數(shù)調(diào)用off()一次性移除已綁定的所有類型的事件處理函數(shù)

事件觸發(fā)條件

事件的觸發(fā)總是由用戶操作引發(fā)的。例如,我們監(jiān)控文本框的內(nèi)容改動(dòng),當(dāng)用戶在文本框中輸入時(shí),就會(huì)觸發(fā)change事件。但是,如果用JavaScript代碼去改動(dòng)文本框的值,將不會(huì)觸發(fā)change事件。

有些時(shí)候,我們希望用代碼觸發(fā)change事件,可以直接調(diào)用無參數(shù)的change()方法來觸發(fā)該事件:

var input = $('#test-input');
input.val('change it!');
input.change(); // 觸發(fā)change事件

input.change()相當(dāng)于input.trigger('change'),它是trigger()方法的簡寫。

瀏覽器安全限制
在瀏覽器中,有些JavaScript代碼只有在用戶觸發(fā)下才能執(zhí)行,例如,window.open()函數(shù)。

以上就是本文的全部內(nèi)容,希望對(duì)大家有所幫助,希望大家繼續(xù)關(guān)注腳本之家的最新內(nèi)容。

相關(guān)文章

最新評(píng)論

会宁县| 石嘴山市| 库伦旗| 双桥区| 衡阳市| 雷山县| 呼伦贝尔市| 乌什县| 平顺县| 天津市| 正蓝旗| 隆尧县| 新竹县| 萍乡市| 启东市| 马关县| 榆中县| 奉化市| 洮南市| 油尖旺区| 广平县| 开江县| 扬中市| 北票市| 巨野县| 鄄城县| 石楼县| 普洱| 米泉市| 宿迁市| 玛曲县| 马鞍山市| 思南县| 彰化县| 徐闻县| 金平| 岢岚县| 和田县| 珠海市| 逊克县| 昌黎县|