jQuery 之 事件

jquery事件

  • 事件函數(shù)列表:

    • blur() : 元素失去焦點
    • focus() : 元素獲得焦點
    • change() : 表單元素的值發(fā)生變化
    • click() : 鼠標(biāo)單擊
    • dblclick() : 鼠標(biāo)雙擊
    • mouseover() : 鼠標(biāo)進入(進入子元素也觸發(fā))
    • mouseout() : 鼠標(biāo)離開(離開子元素也觸發(fā))
    • mouseenter() : 鼠標(biāo)進入(進入子元素不觸發(fā))
    • mouseleave() : 鼠標(biāo)離開(離開子元素不觸發(fā))
    • hover() : 同時為mouseenter和mouseleave事件指定處理函數(shù)
    • mouseup() : 松開鼠標(biāo)
    • mousedown() : 按下鼠標(biāo)
    • mousemove() : 鼠標(biāo)在元素內(nèi)部移動
    • keydown() : 按下鍵盤
    • keypress() : 按下鍵盤
    • keyup() : 松開鍵盤
    • load() : 元素加載完畢
    • ready() : DOM加載完成
    • resize() : 瀏覽器窗口的大小發(fā)生改變
    • scroll() : 滾動條的位置發(fā)生變化
    • select() : 用戶選中文本框中的內(nèi)容
    • submit() : 用戶遞交表單
    • toggle() : 根據(jù)鼠標(biāo)點擊的次數(shù),依次運行多個函數(shù)
    • unload() : 用戶離開頁面
  • 綁定事件的其他方式

    $(function(){
        $('#div1').bind('mouseover click', function(event) {
            alert($(this).html());
        });
    });
    
  • 取消綁定事件

      $(function(){
          $('#div1').bind('mouseover click', function(event) {
              alert($(this).html());
    
              // $(this).unbind();
              $(this).unbind('mouseover');
    
          });
      });
    

主動觸發(fā)與自定義事件

  • 主動觸發(fā)

    • 可使用jquery對象上的trigger方法來觸發(fā)對象上綁定的事件。
  • 自定義事件

    • 除了系統(tǒng)事件外茸苇,可以通過bind方法自定義事件叛甫,然后用tiggle方法觸發(fā)這些事件。
      //給element綁定hello事件
      element.bind("hello",function(){
          alert("hello world!");
      });
      
      //觸發(fā)hello事件
      element.trigger("hello");
      

事件冒泡

  • 什么是事件冒泡

    • 在一個對象上觸發(fā)某類事件(比如單擊onclick事件)谐丢,如果此對象定義了此事件的處理程序爽航,那么此事件就會調(diào)用這個處理程序蚓让,如果沒有定義此事件處理程序或者事件返回true,那么這個事件會向這個對象的父級對象傳播讥珍,從里到外历极,直至它被處理(父級對象所有同類事件都將被激活),或者它到達了對象層次的最頂層衷佃,即document對象(有些瀏覽器是window)
  • 事件冒泡的作用

    • 事件冒泡允許多個操作被集中處理(把事件處理器添加到一個父級元素上趟卸,避免把事件處理器添加到多個子級元素上),它還可以讓你在對象層的不同級別捕獲事件氏义。
  • 阻止事件冒泡

    • 事件冒泡機制有時候是不需要的锄列,需要阻止掉,通過 event.stopPropagation() 來阻止
      $(function(){
          var $box1 = $('.father');
          var $box2 = $('.son');
          var $box3 = $('.grandson');
          $box1.click(function() {
              alert('father');
          });
          $box2.click(function() {
              alert('son');
          });
          $box3.click(function(event) {
              alert('grandson');
              event.stopPropagation();
      
          });
          $(document).click(function(event) {
              alert('grandfather');
          });
      })
      
      ......
      
      <div class="father">
          <div class="son">
              <div class="grandson"></div>
          </div>
      </div>
      
  • 阻止默認行為

    • 阻止右鍵菜單
    $(document).contextmenu(function(event) {
        event.preventDefault();
    });
    
  • 合并阻止操作

    • 實際開發(fā)中惯悠,一般把阻止冒泡和阻止默認行為合并起來寫邻邮,合并寫法可以用
    // event.stopPropagation();
    // event.preventDefault();
    
    // 合并寫法:
    return false;
    
  • 頁面彈框?qū)嵗?/p>

事件委托

事件委托就是利用冒泡的原理,把事件加到父級上克婶,通過判斷事件來源的子集筒严,執(zhí)行相應(yīng)的操作,事件委托首先可以極大減少事件綁定次數(shù)情萤,提高性能鸭蛙;其次可以讓新加入的子元素也可以擁有相同的操作。

  • 一般綁定事件的寫法

    $(function(){
        $ali = $('#list li');
        $ali.click(function(event) {
            $(this).css({background:'red'});
        });
    })
    ...
    <ul id="list">
        <li>1</li>
        <li>2</li>
        <li>3</li>
        <li>4</li>
        <li>5</li>
    </ul>
    
  • 事件委托的寫法

    $(function(){
        $list = $('#list');
        $list.delegate('li', 'click', function(event) {
            $(this).css({background:'red'});
        });
    })
    ...
    <ul id="list">
        <li>1</li>
        <li>2</li>
        <li>3</li>
        <li>4</li>
        <li>5</li>
    </ul>
    
  • 取消事件委托

    // ev.delegateTarge 委托對象
    $(ev.delegateTarge).undelegate();
    
    // 上面的例子可使用 $list.undelegate();
    
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末筋岛,一起剝皮案震驚了整個濱河市规惰,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌泉蝌,老刑警劉巖歇万,帶你破解...
    沈念sama閱讀 218,451評論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異勋陪,居然都是意外死亡贪磺,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,172評論 3 394
  • 文/潘曉璐 我一進店門诅愚,熙熙樓的掌柜王于貴愁眉苦臉地迎上來寒锚,“玉大人详恼,你說我怎么就攤上這事呵哨。” “怎么了屿愚?”我有些...
    開封第一講書人閱讀 164,782評論 0 354
  • 文/不壞的土叔 我叫張陵雌桑,是天一觀的道長喇喉。 經(jīng)常有香客問我,道長校坑,這世上最難降的妖魔是什么拣技? 我笑而不...
    開封第一講書人閱讀 58,709評論 1 294
  • 正文 為了忘掉前任千诬,我火速辦了婚禮,結(jié)果婚禮上膏斤,老公的妹妹穿的比我還像新娘徐绑。我一直安慰自己,他們只是感情好莫辨,可當(dāng)我...
    茶點故事閱讀 67,733評論 6 392
  • 文/花漫 我一把揭開白布傲茄。 她就那樣靜靜地躺著,像睡著了一般沮榜。 火紅的嫁衣襯著肌膚如雪烫幕。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,578評論 1 305
  • 那天敞映,我揣著相機與錄音较曼,去河邊找鬼。 笑死振愿,一個胖子當(dāng)著我的面吹牛捷犹,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播冕末,決...
    沈念sama閱讀 40,320評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼萍歉,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了档桃?” 一聲冷哼從身側(cè)響起枪孩,我...
    開封第一講書人閱讀 39,241評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎藻肄,沒想到半個月后蔑舞,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,686評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡嘹屯,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,878評論 3 336
  • 正文 我和宋清朗相戀三年攻询,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片州弟。...
    茶點故事閱讀 39,992評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡钧栖,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出婆翔,到底是詐尸還是另有隱情拯杠,我是刑警寧澤,帶...
    沈念sama閱讀 35,715評論 5 346
  • 正文 年R本政府宣布啃奴,位于F島的核電站潭陪,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏纺腊。R本人自食惡果不足惜畔咧,卻給世界環(huán)境...
    茶點故事閱讀 41,336評論 3 330
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望揖膜。 院中可真熱鬧誓沸,春花似錦、人聲如沸壹粟。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,912評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽趁仙。三九已至洪添,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間雀费,已是汗流浹背干奢。 一陣腳步聲響...
    開封第一講書人閱讀 33,040評論 1 270
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留盏袄,地道東北人忿峻。 一個月前我還...
    沈念sama閱讀 48,173評論 3 370
  • 正文 我出身青樓,卻偏偏與公主長得像辕羽,于是被迫代替她去往敵國和親逛尚。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,947評論 2 355

推薦閱讀更多精彩內(nèi)容

  • ??JavaScript 與 HTML 之間的交互是通過事件實現(xiàn)的。 ??事件铣口,就是文檔或瀏覽器窗口中發(fā)生的一些特...
    霜天曉閱讀 3,491評論 1 11
  • 總結(jié): 鼠標(biāo)事件 1.click與dbclick事件$ele.click()$ele.click(handler(...
    阿r阿r閱讀 1,607評論 2 10
  • (續(xù)jQuery基礎(chǔ)(1)) 第5章 DOM節(jié)點的復(fù)制與替換 (1)DOM拷貝clone() 克隆節(jié)點是DOM的常...
    凜0_0閱讀 1,342評論 0 8
  • 第1章 鼠標(biāo)事件 1-1 jQuery鼠標(biāo)事件之click與dbclick事件 用交互操作中滤钱,最簡單直接的操作就是...
    mo默22閱讀 1,279評論 0 6
  • 我在七點二十九趕往要去的地方 耳旁刮進呼呼的風(fēng) 夾雜著時間的嘲笑 盡管如此 我依然保持著原有的步調(diào) 嘈雜的喧鬧 熱...
    霖子醬閱讀 158評論 0 4