這篇文章主要介紹了JQuery中Bind()事件用法,實例分析了Bind()事件的功能、特點與綁定事件時的使用技巧,需要的朋友可以參考下
本文實例分析了JQuery中Bind()事件用法。分享給大家供大家參考。具體分析如下:
我們先看一下它的定義:
.bind( eventType [, eventData], handler(eventObject))
.Bind()方法的主要功能是在向它綁定的對象上面提供一些事件方法的行為。期中它的三個參數的意義分別如下:
eventType是一個字串類型的事件類型,就是你所需要綁定的事件。這類類型可以包括如下:blur, focus, focusin, focusout, load, resize, scroll, unload, click, dblclick, mousedown, mouseup, mousemove, mouseover, mouseout, mouseenter, mouseleave, , keyup, error 。這裡要注意的是,這裡用的都是javascript裡面的事件方法,而不是JQuery裡面的,JQuery裡面的事件方法都在JavaScript 前面多了一個“on”,例如onclick,onblur 等等。
eventData參數是一個可選參數,不過它在平常用的比較少。如果提供了這個參數,那麼我們就能把一些附加資訊傳遞給事件處理函數了。這個參數有個很好的用處,就是處理閉包帶來的問題。待會在舉實例給大家。
Handler是用來綁定的處理數,其實也也就是回呼函數,處理完資料之後對應的方法。
1.第一個簡單的bind ()事件---Hello Word
<input id="BtnFirst"type="button"value="Click Me"/> <script> $(function () { $("#BtnFirst").bind("click",function(){ alert("Hello World"); }); }) </script>
開啟頁面之後,點選按鈕“Click Me”,就會彈出”Hello World”。這算是我們最簡單的綁定事件吧。很簡單吧。
2.綁定多個事件
我們可以透過bind()來綁定多個事件(其實,這也就是JQuery以及Linq中非常有名的鍊式程式設計)。實現的主要功能就是當我們點擊的時候,彈出“Hello World”,當離開button的時候,顯示出一個p。
<p> <input id="BtnFirst"type="button"value="Click Me"/></p> <p id="Testp"style=" width:200px; height:200px; display:none; "> </p> <script> $(function () { $("#BtnFirst").bind("click", function () { alert("Hello World"); }).bind("mouseout", function () { $("#Testp").show("slow"); }); }) </script>
這段程式碼頁很容易理解,就是當button被點擊的時候,彈出一個"Hello World",在離開的時候,在把p給顯示出來。 JQuery裡的動畫,均可以用“slow”、“fast”和“normal”,當然你也可以設定相關的毫秒數。
3.bind()事件的物件
Handler這個回呼函數可以接受一個參數,當這個函數被呼叫時,一個JavaScript事件物件會作為一個參數傳進來。
給一個JQuery官網上面的例子:
<style> p {background:yellow;font-weight:bold;cursor:pointer;3 padding:5px;} p.over {background:#ccc;} span {color:red;} </style> <p>Click or double click here.</p> <span></span> <script> $("p").bind("click", function(event){ var str = "( " + event.pageX + ", " + event.pageY + " )"; $("span").text("Click happened! " + str); }); $("p").bind("dblclick", function(){ $("span").text("Double-click happened in " + this.nodeName); }); $("p").bind("mouseenter mouseleave", function(event){ $(this).toggleClass("over"); }); </script>
這裡的主要功能是為了實現當使用者點擊p這個物件的時候,把目前相對於頁面的座標顯示在span標籤裡面,這裡就用到了event這個事件。把參數傳進去。
4.unbind()事件
unbind([type],[data],Handler) 是bind()的反向操作,從每一個匹配的元素中刪除綁定的事件。如果沒有參數,則刪除所有綁定的事件。你可以將你用bind()註冊的自訂事件取消綁定 定。如果提供了事件類型作為參數,則只刪除該類型的綁定事件。如果把在綁定時傳遞的處理函數當作第二個參數,則只有這個特定的事件處理函數會被刪除。
<body onclick="MyBodyClick()"> <p onclick="MyClickOut()"> <p onclick="MyClickInner()"> <span id="MySpan">I love JQuery!! </span> </p> </p> <span id="LooseFocus">失去焦点</span> </body> <script> function MyClickOut() { alert("outer p"); } function MyClickInner() { alert("Inner p"); } function MyBodyClick() { alert("Body Click"); } var foo = function () { alert("I'm span."); } $(function () { $("#MySpan").bind("click", foo); }) $(function () { $("#LooseFocus").unbind("click", foo); }) </script>
上面的程式碼也很好理解,就是當使用者的滑鼠在span上面停留的時候,然後把span的click事件給取消掉。所以,最後它只會跳出body裡面的alert。
最後,簡單的了解one()事件的使用,其實one和bind是一樣,都是為了綁定事件而產生的。 One與bind基本上差不多,不同的在呼叫 jQuery.event.add時,把註冊的事件處理的函式做了一個小小的調整。 One呼叫了jQuery.event.proxy進行了代理傳入的事 件處理函式。當事件觸發呼叫這個代理的函數時,先把事件從cache中刪除,再執行註冊的事件函數。這裡就是閉包的應用,透過閉包得到fn註冊的事件函數 的引用。
使用規則:
one(type,[data],fn)
為每個符合元素的特定事件(像click)綁定一個一次性的事件處理函數。 在每個物件上,這個事件處理函數只會被執行一次。其他規則與bind()函數相同。這個事件處理函數會接收到一個事件對象,可以透過它來阻止(瀏覽器)預設的行為。如果既想取消預設的行為,又想阻止事件起泡,這個事件處理函數必須回傳false。
貼一下,bind和one的各自程式碼的實作,看官可以稍微的做一個比較:
Bind()程式碼的實作:
bind : function(type, data, fn) { return type == "unload" ? this.one(type,data,fn) : this.each(function(){ //fn || data, fn && data实现了data参数可有可无 jQuery.event.add(this, type, fn || data, fn && data); }); }
One()程式碼的實作:
one : function(type, data, fn) { var one = jQuery.event.proxy(fn || data, function(event) { jQuery(this).unbind(event, one); return (fn || data).apply(this, arguments); //this->当前的元素 }); return this.each(function() { jQuery.event.add(this, type, one, fn && data); }); }
5.最后呢,其实想在贴一个冒泡事件,因为在处理绑定事件的时候,如果调用内部的事件 有可能会触发外面的事件,所以给大伙一个借鉴吧。
这里可以参考一下javascript事件冒泡的文章:《JavaScript 事件冒泡简介及应用》。
简单的说,何为冒泡事件?其实,简单的理解是,也可以说是事件传播,它会从内部的控件广播到父类的元素,然后接着一直往上到祖先级别的元素。
则 冒泡实例代码:
<body onclick="MyBodyClick()"> <p onclick="MyClickOut()"> <p onclick="MyClickInner()"> <span id="MySpan"> I love JQuery!! </span> </p> </p> </body> <script type="text/javascript"> function MyClickOut() { alert("outer p"); } function MyClickInner() { alert("Inner p"); } function MyBodyClick() { alert("Body Click"); } $(function () { $("#MySpan").bind("click", function (event) { alert("I'm span"); event.stopPropagation(); }); </script>
以上是帶你深入了解JQuery中Bind()函數的詳細內容。更多資訊請關注PHP中文網其他相關文章!

引言我知道你可能會覺得奇怪,JavaScript、C 和瀏覽器之間到底有什麼關係?它們之間看似毫無關聯,但實際上,它們在現代網絡開發中扮演著非常重要的角色。今天我們就來深入探討一下這三者之間的緊密聯繫。通過這篇文章,你將了解到JavaScript如何在瀏覽器中運行,C 在瀏覽器引擎中的作用,以及它們如何共同推動網頁的渲染和交互。 JavaScript與瀏覽器的關係我們都知道,JavaScript是前端開發的核心語言,它直接在瀏覽器中運行,讓網頁變得生動有趣。你是否曾經想過,為什麼JavaScr

Node.js擅長於高效I/O,這在很大程度上要歸功於流。 流媒體匯總處理數據,避免內存過載 - 大型文件,網絡任務和實時應用程序的理想。將流與打字稿的類型安全結合起來創建POWE

Python和JavaScript在性能和效率方面的差異主要體現在:1)Python作為解釋型語言,運行速度較慢,但開發效率高,適合快速原型開發;2)JavaScript在瀏覽器中受限於單線程,但在Node.js中可利用多線程和異步I/O提升性能,兩者在實際項目中各有優勢。

JavaScript起源於1995年,由布蘭登·艾克創造,實現語言為C語言。 1.C語言為JavaScript提供了高性能和系統級編程能力。 2.JavaScript的內存管理和性能優化依賴於C語言。 3.C語言的跨平台特性幫助JavaScript在不同操作系統上高效運行。

JavaScript在瀏覽器和Node.js環境中運行,依賴JavaScript引擎解析和執行代碼。 1)解析階段生成抽象語法樹(AST);2)編譯階段將AST轉換為字節碼或機器碼;3)執行階段執行編譯後的代碼。

Python和JavaScript的未來趨勢包括:1.Python將鞏固在科學計算和AI領域的地位,2.JavaScript將推動Web技術發展,3.跨平台開發將成為熱門,4.性能優化將是重點。兩者都將繼續在各自領域擴展應用場景,並在性能上有更多突破。

Python和JavaScript在開發環境上的選擇都很重要。 1)Python的開發環境包括PyCharm、JupyterNotebook和Anaconda,適合數據科學和快速原型開發。 2)JavaScript的開發環境包括Node.js、VSCode和Webpack,適用於前端和後端開發。根據項目需求選擇合適的工具可以提高開發效率和項目成功率。

是的,JavaScript的引擎核心是用C語言編寫的。 1)C語言提供了高效性能和底層控制,適合JavaScript引擎的開發。 2)以V8引擎為例,其核心用C 編寫,結合了C的效率和麵向對象特性。 3)JavaScript引擎的工作原理包括解析、編譯和執行,C語言在這些過程中發揮關鍵作用。


熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

SublimeText3 Linux新版
SublimeText3 Linux最新版

WebStorm Mac版
好用的JavaScript開發工具

Dreamweaver Mac版
視覺化網頁開發工具

SublimeText3 英文版
推薦:為Win版本,支援程式碼提示!

禪工作室 13.0.1
強大的PHP整合開發環境