主頁 > 前端設計 > jQurey 事件

jQurey 事件

2020-09-16 06:34:05 前端設計

jQurey 事件
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
開發工具與關鍵技術:Adobe Dreamweaver JavaScript
作者:彭琦旺
撰寫時間:2020年5月2日
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
GET: jQueryEvent jQuery基礎三 事件 : 滑鼠事件 鍵盤事件 表單事件
1.$(document).ready(function(){})頁面載入事件   js window.onload
$(document).ready() 方法
        當DOM載入就緒可以查詢及操縱時系結一個要執行的函式。
        這是事件模塊中最重要的一個函式,因為它可以極大地提高web應用程式的回應速度。
        簡單地說,這個方法純粹是對向window.load事件注冊的替代方法。通過使用這個方法,
        可以在DOM載入就緒能夠讀取并操縱時立即呼叫你所系結的函式,而99.99%的JavaScript函式都需要在那一刻執行。

        注意:可以在同一個頁面中無限次地使用$(document).ready()事件。
        其中注冊的函式會按照(代碼中的)先后順序依次執行。
        引數說明:fn 要在DOM就緒時執行的函式
        在DOM加載完成時運行的代碼,可以這樣寫:
        jQuery 代碼:
        $(document).ready(function(){
            // 在這里寫你的代碼...
        });
        //簡寫形式
        $(function(){
            // 在這里寫你的代碼...
        })
1.1 jQuery 滑鼠事件
            1. click() 滑鼠單擊事件   // js onclick 
            2. dblclick() 滑鼠雙擊事件 // js ondblclick

            3. mousedown() 當滑鼠指標移動到元素上方,并按下滑鼠按鍵時,會發生mousedown事件
            4. mouseup() 當在元素上放松滑鼠按鈕時,會發生 mouseup 事件。

            5. mouseenter() 當滑鼠指標穿過元素時,會發生mouseenter事件。該事件大多數時候會與mouseleave 事件一起使用。
            6. mouseleave() 當滑鼠指標離開元素時,會發生 mouseleave 事件。該事件大多數時候會與mouseenter 事件一起使用

            7.mouseover() 當滑鼠指標位于元素上方時,會發生 mouseover 事件。該事件大多數時候會與 mouseout 事件一起使用
            8.mouseout() 當滑鼠指標從元素上移開時,發生 mouseout 事件。該事件大多數時候會與 mouseover 事件一起使用

            9. mousemove() 當滑鼠指標在指定的元素中移動時,就會發生 mousemove 事件。
                            mousemove事件處理函式會被傳遞一個變數——事件物件,其.clientX 和 .clientY 屬性代表滑鼠的坐標

            注意!!!
                mouseover與mouseenter的區別:
                    mouseover如果滑鼠指標穿過選定元素的任何子元素,都會觸發mouseover事件,
                    mouseenter如果滑鼠指標穿過選定元素的任何子元素不會觸發mouseenter事件
                mouseout與mouseleave的區別:
                    mouseout不論滑鼠指標離開被選元素還是任何子元素,都會觸發mouseout事件。
                    mouseleave只有在滑鼠指標離開被選元素時,才會觸發 mouseleave 事件
            簡而言之:就是移動到選定元素的子元素上面是否觸發事件
                      mouseover  子元素 觸發
                      mouseenter 子元素 不觸發
                      mouseout   子元素 觸發
                      mouseleave 子元素 不觸發
1.2 jQuery 表單事件
1.1 jQuery中的focus()獲取焦點事件與blur()失去焦點事件(滑鼠事件)
            1. focus() 事件
                當元素獲得焦點時,觸發focus事件。可以通過滑鼠點擊或者鍵盤上的TAB導航觸發。這將觸發所有系結的focus函式
            2. blur() 事件
                當元素失去焦點時觸發 blur 事件。
                這個函式會呼叫執行系結到blur事件的所有函式,包括瀏覽器的默認行為。可以通過回傳false來防止觸發瀏覽器的默認行為。blur事件會在元素失去焦點的時候觸發,既可以是滑鼠行為,也可以是按tab鍵離開的
1.2 jQuery中的focusin()事件與focusout()事件
            3. focusin() 事件
                當元素獲得焦點時,觸發 focusin 事件。
                focusin事件跟focus事件區別在于,他可以在父元素上檢測子元素獲取焦點的情況。
            4. focusout() 事件
                當元素失去焦點時觸發 focusout 事件。
                focusout事件跟blur事件區別在于,他可以在父元素上檢測子元素失去焦點的情況
1.3 jQuery中的表單事件 change()事件
            <input>元素,<textarea>和<select>元素的值都是可以發生改變的,開發者可以通過change事件去監聽這些改變的動作
            input元素
                監聽value值的變化,當有改變時,失去焦點后觸發change事件。對于單選按鈕和復選框,當用戶用滑鼠做出選擇時,該事件立即觸發。
            select元素
                對于下拉選擇框,當用戶用滑鼠作出選擇時,該事件立即觸發
            textarea元素
                多行文本輸入框,當有改變時,失去焦點后觸發change事件
1.4 jQuery中的表單事件 select()事件
           當textarea或文本型別的input元素中的文本被選擇時,會發生 select 事件。
           這個函式會呼叫執行系結到select事件的所有函式,包括瀏覽器的默認行為。
           可以通過在某個系結的函式中回傳false來防止觸發瀏覽器的默認行為。
1.5 jQuery表單事件中的 submit()事件
            提交表單是一個最常見的業務需求,比如用戶注冊,一些資訊的輸入都是需要表單的提交。
            同樣的有時候開發者需要在表單提交的時候過濾一些的資料、做一些必要的操作
            (例如:驗證表單輸入的正確性,如果錯誤就阻止提交,從新輸入)此時可以通過submit事件,監聽下提交表單的這個動作
            使用上非常簡單,與基本事件引數處理保持一致
這里需要特別注意:
                form元素是有默認提交表單的行為,如果通過submit處理的話,需要禁止瀏覽器的這個默認行為
                <form onsubmit="return false;"></form>,jQuery中可以直接在函式中最后結尾return false即可如果你要阻止表單提交:
      jQuery 代碼:
            $("form").submit( function () {
                return false;
            } );
1.6 事件物件:Query事件物件的屬性和方法
        /*
            事件物件的屬于與方法有很多,但是我們經常用的只有那么幾個,這里我主要說下作用與區別
            event.type:獲取事件的型別
                觸發元素的事件型別
                $("a").click(function(event) {
                  alert(event.type); // "click"事件
                });
            event.pageX 和 event.pageY:獲取滑鼠當前相對于頁面的坐標
                通過這2個屬性,可以確定元素在當前頁面的坐標值,滑鼠相對于檔案的左邊緣的位置(左邊)與 (頂邊)的距離,簡單來說是從頁面左上角開始,即是以頁面為參考點,不隨滑動條移動而變化
            event.preventDefault() 方法:阻止默認行為
                這個用的特別多,在執行這個方法后,如果點擊一個鏈接(a標簽),瀏覽器不會跳轉到新的 URL 去了。我們可以用 event.isDefaultPrevented() 來確定這個方法是否(在那個事件物件上)被呼叫過了
            event.stopPropagation() 方法:阻止事件冒泡
                事件是可以冒泡的,為防止事件冒泡到DOM樹上,也就是不觸發的任何前輩元素上的事件處理函式
            event.which:獲取在滑鼠單擊時,單擊的是滑鼠的哪個鍵
                event.which 將 event.keyCode 和 event.charCode 標準化了。event.which也將正常化的按鈕按下(mousedown 和 mouseupevents),左鍵報告1,中間鍵報告2,右鍵報告3
            event.currentTarget : 在事件冒泡程序中的當前DOM元素
                冒泡前的當前觸發事件的DOM物件, 等同于this.
            this和event.target的區別:
                js中事件是會冒泡的,所以this是可以變化的,但event.target不會變化,它永遠是直接接受事件的目標DOM元素;
            .this和event.target都是dom物件
                如果要使用jquey中的方法可以將他們轉換為jquery物件。比如this和$(this)的使用、event.target和$(event.target)的使用;
1.3 jQuery事件 鍵盤事件
1.1 jQuery鍵盤事件 keydown()與keyup()事件
            滑鼠有mousedown,mouseup之類的事件,這是根據人的手勢動作分解的2個觸發行為。
            相對應的鍵盤也有這類事件,將用戶行為分解成2個動作,鍵盤按下與松手,針對這樣的2種動作,
            jQuery分別提供了對應keydown與keyup方法來監聽

            - keydown()事件
                當鍵盤或按鈕被按下時,發生keydown事件。
            - keyup()事件
                當按鈕被松開時,發生keyup事件。它發生在當前獲得焦點的元素上。
1.2jQuery鍵盤事件 keypress()事件
          在input元素上系結keydown事件會發現一個問題:
            注意:每次獲取的內容都是之前輸入的,當前輸入的獲取不到

           keydown事件觸發在文字還沒敲進文本框,這時如果在keydown事件中輸出文本框中的文本,
           得到的是觸發鍵盤事件前的文本,而keyup事件觸發時整個鍵盤事件的操作已經完成,
           獲得的是觸發鍵盤事件后的文本

           當瀏覽器捕獲鍵盤輸入時,還提供了一個keypress的回應,這個跟keydown是非常相似

           keypress事件與keydown和keyup的主要區別
                只能捕獲單個字符,不能捕獲組合鍵
                無法回應系統功能鍵(如delete,backspace)
                不區分小鍵盤和主鍵盤的數字字符
                總而言之,

            KeyPress主要用來接收字母、數字等ANSI字符,
            而 KeyDown 和 KeyUP 事件程序可以處理任何不被 KeyPress 識別的擊鍵。
            諸如:功能鍵(F1-F12)、編輯鍵、定位鍵以及任何這些鍵和鍵盤換檔鍵的組合等。
1.4 jQuery 事件的系結和解綁
1.1 事件的系結和解綁 on()的多事件系結
        之前學的滑鼠事件,表單事件與鍵盤事件都有個特點,就是直接給元素系結一個處理函式,
            所有這類事件都是屬于快捷處理。翻開原始碼其實可以看到,所有的快捷事件在底層的處理都是通過一個"on"方法來實作的。
            jQuery on()方法是官方推薦的系結事件的一個方法。
            基本用法:on(events,[selector],[data],fn)  在選擇元素上系結一個或多個事件的事件處理函式。

            最常見的給元素系結一個點擊事件,對比一下快捷方式與on方式的不同
            $("#elem").click(function(){})  //快捷方式
            $("#elem").on('click',function(){}) //on方式
            最大的不同點就是on是可以自定義事件名,當然不僅僅只是如何,繼續往下看
                多個事件系結同一個函式
                $("#elem").on("mouseover mouseout",function(){ });
                通過空格分離,傳遞不同的事件名,可以同時系結多個事件

            多個事件系結不同函式
                $("#elem").on({
                    mouseover:function(){},
                    mouseout:function(){},
                    click:function(){}
                });
            通過空格分離,傳遞不同的事件名,可以同時系結多個事件,每一個事件執行自己的回呼方法
給元素系結一個點擊事件 on方式
        $("#div1").on("click", function (e) {
            $(this).text("觸發了:" + e.type);
        })
        //多個事件系結同一個函式
        $("#div2").on("mousedown mouseup", function (e) {
            $(this).text("觸發了:" + e.type);
        })
        //多個事件系結不同函式
        $("#div3").on({
            mousedown: function () {
                $(this).attr("class","bgGreen");
            },
            mouseup: function () {
                $(this).removeAttr("class");
            }
        });

uj5u.com熱心網友回復:

轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/54515.html

標籤:JavaScript

上一篇:重整理問,document.getElementById改class?

下一篇:關于ajax的問題,點擊按鈕不回應

標籤雲
其他(157675) Python(38076) JavaScript(25376) Java(17977) C(15215) 區塊鏈(8255) C#(7972) AI(7469) 爪哇(7425) MySQL(7132) html(6777) 基礎類(6313) sql(6102) 熊猫(6058) PHP(5869) 数组(5741) R(5409) Linux(5327) 反应(5209) 腳本語言(PerlPython)(5129) 非技術區(4971) Android(4554) 数据框(4311) css(4259) 节点.js(4032) C語言(3288) json(3245) 列表(3129) 扑(3119) C++語言(3117) 安卓(2998) 打字稿(2995) VBA(2789) Java相關(2746) 疑難問題(2699) 细绳(2522) 單片機工控(2479) iOS(2429) ASP.NET(2402) MongoDB(2323) 麻木的(2285) 正则表达式(2254) 字典(2211) 循环(2198) 迅速(2185) 擅长(2169) 镖(2155) 功能(1967) .NET技术(1958) Web開發(1951) python-3.x(1918) HtmlCss(1915) 弹簧靴(1913) C++(1909) xml(1889) PostgreSQL(1872) .NETCore(1853) 谷歌表格(1846) Unity3D(1843) for循环(1842)

熱門瀏覽
  • vue移動端上拉加載

    可能做得過于簡單或者比較low,請各位大佬留情,一起探討技術 ......

    uj5u.com 2020-09-10 04:38:07 more
  • 優美網站首頁,頂部多層導航

    一個個人用的瀏覽器首頁,可以把一下常用的網站放在這里,平常打開會比較方便。 第一步,HTML代碼 <script src=https://www.cnblogs.com/szharf/p/"js/jquery-3.4.1.min.js"></script> <div id="navigate"> <ul> <li class="labels labels_1"> ......

    uj5u.com 2020-09-10 04:38:47 more
  • 頁面為要加<!DOCTYPE html>

    最近因為寫一個js函式,需要用到$(window).height(); 由于手寫demo的時候,過于自信,其實對前端方面的認識也不夠體系,用文本檔案直接敲出來的html代碼,第一行沒有加上<!DOCTYPE html> 導致了$(window).height();的結果直接是整個document的高 ......

    uj5u.com 2020-09-10 04:38:52 more
  • WordPress網站程式手動升級要做好資料備份

    WordPress博客網站程式在進行升級前,必須要做好網站資料的備份,這個問題良家佐言是遇見過的;在剛開始接觸WordPress博客程式的時候,因為升級問題和博客網站的修改的一些嘗試,良家佐言是吃盡了苦頭。因為購買的是西部數碼的空間和域名,每當佐言把自己的WordPress博客網站搞到一塌糊涂的時候 ......

    uj5u.com 2020-09-10 04:39:30 more
  • WordPress程式不能升級為5.4.2版本的原因

    WordPress是一款個人博客系統,受到英文博客愛好者和中文博客愛好者的追捧,并逐步演化成一款內容管理系統軟體;它是使用PHP語言和MySQL資料庫開發的,用戶可以在支持PHP和MySQL資料庫的服務器上使用自己的博客。每一次WordPress程式的更新,就會牽動無數WordPress愛好者的心, ......

    uj5u.com 2020-09-10 04:39:49 more
  • 使用CSS3的偽元素進行首字母下沉和首行改變樣式

    網頁中常見的一種效果,首字改變樣式或者首行改變樣式,效果如下圖。 代碼: <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, ......

    uj5u.com 2020-09-10 04:40:09 more
  • 關于a標簽的講解

    什么是a標簽? <a> 標簽定義超鏈接,用于從一個頁面鏈接到另一個頁面。 <a> 元素最重要的屬性是 href 屬性,它指定鏈接的目標。 a標簽的語法格式:<a href=https://www.cnblogs.com/summerxbc/p/"指定要跳轉的目標界面的鏈接">需要展示給用戶看見的內容</a> a標簽 在所有瀏覽器中,鏈接的默認外觀如下: 未被訪問的鏈接帶 ......

    uj5u.com 2020-09-10 04:40:11 more
  • 前端輪播圖

    在需要輪播的頁面是引入swiper.min.js和swiper.min.css swiper.min.js地址: 鏈接:https://pan.baidu.com/s/15Uh516YHa4CV3X-RyjEIWw 提取碼:4aks swiper.min.css地址 鏈接:https://pan.b ......

    uj5u.com 2020-09-10 04:40:13 more
  • 如何設定html中的背景圖片(全屏顯示,且不拉伸)

    1 <style>2 body{background-image:url(https://uploadbeta.com/api/pictures/random/?key=BingEverydayWallpaperPicture); 3 background-size:cover;background ......

    uj5u.com 2020-09-10 04:40:16 more
  • Java學習——HTML詳解(上)

    HTML詳解 初識HTML Hyper Text Markup Language(超文本標記語言) 1 <!--DOCTYPE:告訴瀏覽器我們要使用什么規范--> 2 <!DOCTYPE html> 3 <html lang="en"> 4 <head> 5 <!--meta 描述性的標簽,描述一些 ......

    uj5u.com 2020-09-10 04:40:33 more
最新发布
  • 我的第一個NPM包:panghu-planebattle-esm(胖虎飛機大戰)使用說明

    好家伙,我的包終于開發完啦 歡迎使用胖虎的飛機大戰包!! 為你的主頁添加色彩 這是一個有趣的網頁小游戲包,使用canvas和js開發 使用ES6模塊化開發 效果圖如下: (覺得圖片太sb的可以自己改) 代碼已開源!! Git: https://gitee.com/tang-and-han-dynas ......

    uj5u.com 2023-04-20 07:59:23 more
  • 生產事故-走近科學之消失的JWT

    入職多年,面對生產環境,盡管都是小心翼翼,慎之又慎,還是難免捅出簍子。輕則滿頭大汗,面紅耳赤。重則系統停擺,損失資金。每一個生產事故的背后,都是寶貴的經驗和教訓,都是專案成員的血淚史。為了更好地防范和遏制今后的各類事故,特開此專題,長期更新和記錄大大小小的各類事故。有些是親身經歷,有些是經人耳傳口授 ......

    uj5u.com 2023-04-18 07:55:04 more
  • 記錄--Canvas實作打飛字游戲

    這里給大家分享我在網上總結出來的一些知識,希望對大家有所幫助 打開游戲界面,看到一個畫面簡潔、卻又富有挑戰性的游戲。螢屏上,有一個白色的矩形框,里面不斷下落著各種單詞,而我需要迅速地輸入這些單詞。如果我輸入的單詞與螢屏上的單詞匹配,那么我就可以獲得得分;如果我輸入的單詞錯誤或者時間過長,那么我就會輸 ......

    uj5u.com 2023-04-04 08:35:30 more
  • 了解 HTTP 看這一篇就夠

    在學習網路之前,了解它的歷史能夠幫助我們明白為何它會發展為如今這個樣子,引發探究網路的興趣。下面的這張圖片就展示了“互聯網”誕生至今的發展歷程。 ......

    uj5u.com 2023-03-16 11:00:15 more
  • 藍牙-低功耗中心設備

    //11.開啟藍牙配接器 openBluetoothAdapter //21.開始搜索藍牙設備 startBluetoothDevicesDiscovery //31.開啟監聽搜索藍牙設備 onBluetoothDeviceFound //30.停止監聽搜索藍牙設備 offBluetoothDevi ......

    uj5u.com 2023-03-15 09:06:45 more
  • canvas畫板(滑鼠和觸摸)

    <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>canves</title> <style> #canvas { cursor:url(../images/pen.png),crosshair; } #canvasdiv{ bo ......

    uj5u.com 2023-02-15 08:56:31 more
  • 手機端H5 實作自定義拍照界面

    手機端 H5 實作自定義拍照界面也可以使用 MediaDevices API 和 <video> 標簽來實作,和在桌面端做法基本一致。 首先,使用 MediaDevices.getUserMedia() 方法獲取攝像頭媒體流,并將其傳遞給 <video> 標簽進行渲染。 接著,使用 HTML 的 < ......

    uj5u.com 2023-01-12 07:58:22 more
  • 記錄--短視頻滑動播放在 H5 下的實作

    這里給大家分享我在網上總結出來的一些知識,希望對大家有所幫助 短視頻已經無數不在了,但是主體還是使用 app 來承載的。本文講述 H5 如何實作 app 的視頻滑動體驗。 無聲勝有聲,一圖頂百辯,且看下圖: 網址鏈接(需在微信或者手Q中瀏覽) 從上圖可以看到,我們主要實作的功能也是本文要講解的有: ......

    uj5u.com 2023-01-04 07:29:05 more
  • 一文讀懂 HTTP/1 HTTP/2 HTTP/3

    從 1989 年萬維網(www)誕生,HTTP(HyperText Transfer Protocol)經歷了眾多版本迭代,WebSocket 也在期間萌芽。1991 年 HTTP0.9 被發明。1996 年出現了 HTTP1.0。2015 年 HTTP2 正式發布。2020 年 HTTP3 或能正... ......

    uj5u.com 2022-12-24 06:56:02 more
  • 【HTML基礎篇002】HTML之form表單超詳解

    ??一、form表單是什么

    ??二、form表單的屬性

    ??三、input中的各種Type屬性值

    ??四、標簽 ......

    uj5u.com 2022-12-18 07:17:06 more