亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > JavaScript > 正文

JQuery中Bind()事件用法分析

2019-11-20 12:33:10
字體:
來源:轉載
供稿:網友

本文實例分析了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, change, select, submit, keydown, keypress, 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的時候,顯示出一個div。

<div><input id="BtnFirst"type="button"value="Click Me"/></div><div id="TestDiv"style=" width:200px; height:200px; display:none; "></div><script>$(function () { $("#BtnFirst").bind("click", function () {  alert("Hello World"); }).bind("mouseout", function () {  $("#TestDiv").show("slow"); });})</script>

這段代碼頁很容易理解,就是當button被點擊的時候,彈出一個"Hello World",在離開的時候,在把div給顯示出來。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()"> <div onclick="MyClickOut()">  <div onclick="MyClickInner()">   <span id="MySpan">I love JQuery!! </span>  </div> </div> <span id="LooseFocus">失去焦點</span></body><script>function MyClickOut() { alert("outer Div");}function MyClickInner() { alert("Inner Div");}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()"> <div onclick="MyClickOut()">  <div onclick="MyClickInner()">    <span id="MySpan">     I love JQuery!!    </span>  </div> </div></body><script type="text/javascript"> function MyClickOut() {  alert("outer Div"); } function MyClickInner() {  alert("Inner Div"); } function MyBodyClick() {      alert("Body Click"); } $(function () {  $("#MySpan").bind("click", function (event) {   alert("I'm span");   event.stopPropagation(); });</script>

希望本文所述對大家的jQuery程序設計有所幫助。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
日本国产欧美一区二区三区| 亚洲免费av电影| 性色av一区二区三区红粉影视| 国产精品第1页| 成人精品一区二区三区电影黑人| 2019亚洲日韩新视频| 欧美在线国产精品| 久久久久久久亚洲精品| 亚洲国产精品va在线看黑人| 国产精品国产三级国产aⅴ浪潮| 欧美精品电影在线| 日本一区二区三区四区视频| 午夜精品一区二区三区在线视| 久久精品国产久精国产思思| 欧美电影免费观看电视剧大全| 国产精品久久久久7777婷婷| 亚洲第一福利视频| 国产精品69久久久久| 国产精品一区二区三区成人| 欧美日韩裸体免费视频| 欧美精品做受xxx性少妇| 中文字幕日韩欧美在线视频| 亚洲成人精品视频| 国产精品一区二区三区成人| 国产中文字幕日韩| 97精品国产aⅴ7777| 国产99久久精品一区二区 夜夜躁日日躁| 欧美性在线观看| 久久人人爽人人爽人人片av高清| 亚洲国产中文字幕在线观看| 久久中文精品视频| 粉嫩av一区二区三区免费野| 中文字幕在线成人| 日韩电影免费观看在线| 91久久久国产精品| 色哟哟入口国产精品| 在线日韩欧美视频| 日韩精品一区二区三区第95| 亚洲国产精品嫩草影院久久| 国产v综合v亚洲欧美久久| 欧美中文在线观看| 色噜噜久久综合伊人一本| 精品人伦一区二区三区蜜桃网站| 91中文精品字幕在线视频| 91免费版网站入口| 国产视频观看一区| 欧美激情在线狂野欧美精品| 国产欧美精品一区二区| 欧美亚洲视频一区二区| 欧美乱妇40p| 九九久久久久99精品| 成人在线激情视频| 午夜精品久久久久久久久久久久久| 欧美一区第一页| 伊人久久久久久久久久| 日韩资源在线观看| 亚洲性夜色噜噜噜7777| 欧美黑人极品猛少妇色xxxxx| 亚洲国产高清福利视频| 日韩极品精品视频免费观看| 欧美xxxx18国产| 久久久99久久精品女同性| 国产欧美精品日韩| 精品精品国产国产自在线| 欧美在线精品免播放器视频| 亚洲区一区二区| 日韩欧美一区二区在线| 欧美精品激情视频| 麻豆乱码国产一区二区三区| 亚洲欧美三级伦理| 亚洲精品久久久久久久久久久| 91免费国产视频| 搡老女人一区二区三区视频tv| 中文日韩电影网站| 午夜精品福利视频| 色妞欧美日韩在线| 播播国产欧美激情| 狠狠干狠狠久久| 成人免费在线网址| 欧美日韩国产一区二区三区| 欧美日韩一区二区精品| 九九热精品视频在线播放| 国产精品xxxxx| 精品久久久久久久久久ntr影视| 91成人在线观看国产| 亚洲男子天堂网| 欧洲成人免费视频| 综合网中文字幕| 久久6精品影院| 三级精品视频久久久久| 久操成人在线视频| 亚洲国产精品久久久久| 国内伊人久久久久久网站视频| 97免费视频在线播放| 久久国产精品影视| 欧美中文字幕在线| 国产美女91呻吟求| 国产日韩欧美夫妻视频在线观看| 日韩国产激情在线| 亚洲亚裔videos黑人hd| 精品国产一区二区三区久久久| 中文字幕亚洲二区| 国产精品久久久久免费a∨大胸| 8090理伦午夜在线电影| 8050国产精品久久久久久| 激情成人中文字幕| 热门国产精品亚洲第一区在线| 色偷偷91综合久久噜噜| 国产精品夫妻激情| 国产视频精品久久久| 激情亚洲一区二区三区四区| 欧美美女15p| 在线精品国产成人综合| 国产69精品久久久| 懂色av一区二区三区| 亚洲韩国日本中文字幕| 91亚洲精品视频| 国产日本欧美一区二区三区在线| 亚洲国产精品大全| 国产精品一二三视频| 91精品久久久久久久久不口人| 久久亚洲综合国产精品99麻豆精品福利| 国产成人一区二区三区电影| 欧美第一淫aaasss性| 欧美在线激情视频| 亚洲a区在线视频| 4438全国亚洲精品在线观看视频| 久久久久久久影院| 亚洲二区中文字幕| 久久成人综合视频| 国产精品久久久久久av下载红粉| 欧美一级片免费在线| 日韩精品免费电影| 久久久久久久久国产| 黑人精品xxx一区| 亚洲精品国产精品乱码不99按摩| 国模精品一区二区三区色天香| 久久免费视频这里只有精品| 亚洲精品成a人在线观看| 欧美国产日韩中文字幕在线| 国产成人精品一区二区| 久久成人亚洲精品| 日韩成人在线电影网| 中文字幕精品www乱入免费视频| 亚洲bt欧美bt日本bt| 96sao精品视频在线观看| 日韩在线观看视频免费| 97精品国产91久久久久久| 欧美大片欧美激情性色a∨久久| 国语自产精品视频在线看抢先版图片| 中文字幕亚洲激情| 国产精品入口免费视| 青青青国产精品一区二区| 亚洲色图综合久久| 亚洲人成欧美中文字幕| 亚洲欧美国产精品va在线观看| 在线视频中文亚洲| 欧美另类第一页| 亚洲欧美日韩高清| 亚洲国产欧美在线成人app| 午夜精品久久久久久久白皮肤| 国产精品视频在线观看| 欧美午夜精品在线| 亚洲人成欧美中文字幕|