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

JQuery中Bind()事件用法分析

 更新時(shí)間:2015年05月05日 15:10:28   作者:殘星  
這篇文章主要介紹了JQuery中Bind()事件用法,實(shí)例分析了Bind()事件的功能、特點(diǎn)與綁定事件時(shí)的使用技巧,需要的朋友可以參考下

本文實(shí)例分析了JQuery中Bind()事件用法。分享給大家供大家參考。具體分析如下:

我們先看一下它的定義:

.bind( eventType [, eventData], handler(eventObject))

.Bind()方法的主要功能是在向它綁定的對(duì)象上面提供一些事件方法的行為。期中它的三個(gè)參數(shù)的意義分別如下:

eventType是一個(gè)字符串類型的事件類型,就是你所需要綁定的事件。這類類型可以包括如下: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 前面多了一個(gè)“on”,比如onclick,onblur 等等。

eventData參數(shù)是一個(gè)可選參數(shù),不過它在平時(shí)用的比較少。如果提供了這個(gè)參數(shù),那么我們就能把一些附加信息傳遞給事件處理函數(shù)了。這個(gè)參數(shù)有個(gè)很好的用處,就是處理閉包帶來的問題。待會(huì)在給大家舉實(shí)例。

Handler是用來綁定的處理數(shù),其實(shí)也也就是回調(diào)函數(shù),處理完數(shù)據(jù)之后相應(yīng)的方法。

1.第一個(gè)簡(jiǎn)單的bind ()事件---Hello Word

<input id="BtnFirst"type="button"value="Click Me"/>
<script>
$(function () {
 $("#BtnFirst").bind("click",function(){
  alert("Hello World");
 });
})
</script>

打開頁面之后,點(diǎn)擊按鈕“Click Me”,就會(huì)彈出”Hello World”。這算是我們最簡(jiǎn)單的綁定事件吧。很簡(jiǎn)單吧。

2.綁定多個(gè)事件

我們可以通過bind()來綁定多個(gè)事件(其實(shí),這也就是JQuery以及Linq中非常有名的鏈?zhǔn)骄幊蹋?。?shí)現(xiàn)的主要功能就是當(dāng)我們點(diǎn)擊的時(shí)候,彈出“Hello World”,當(dāng)離開button的時(shí)候,顯示出一個(gè)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>

這段代碼頁很容易理解,就是當(dāng)button被點(diǎn)擊的時(shí)候,彈出一個(gè)"Hello World",在離開的時(shí)候,在把div給顯示出來。JQuery里的動(dòng)畫,均可以用“slow”、“fast”和“normal”,當(dāng)然你還可以設(shè)置相關(guān)的毫秒數(shù)。

3.bind()事件的對(duì)象

Handler這個(gè)回調(diào)函數(shù)可以接受一個(gè)參數(shù),當(dāng)這個(gè)函數(shù)被調(diào)用時(shí),一個(gè)JavaScript事件對(duì)象會(huì)作為一個(gè)參數(shù)傳進(jìn)來。

這個(gè)事件對(duì)象通常是沒有必要且可以省略的參數(shù),因?yàn)楫?dāng)這個(gè)事件處理函數(shù)綁定的時(shí)候就能夠明確知道他在觸發(fā)的時(shí)候應(yīng)該做些什么,通常就已經(jīng)可以獲得充分的信息了。然而在有些時(shí)候,在事件初始化的時(shí)候需要獲取更多關(guān)于用戶環(huán)境的信息。

給一個(gè)JQuery官網(wǎng)上面的例子:

<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>

這里的主要功能是為了實(shí)現(xiàn)當(dāng)用戶點(diǎn)擊p這個(gè)對(duì)象的時(shí)候,把當(dāng)前相對(duì)于頁面的坐標(biāo)顯示在span標(biāo)簽里面,這里就用到了event這個(gè)事件。把參數(shù)傳進(jìn)去。

4.unbind()事件

unbind([type],[data],Handler) 是 bind()的反向操作,從每一個(gè)匹配的元素中刪除綁定的事件。如果沒有參數(shù),則刪除所有綁定的事件。你可以將你用bind()注冊(cè)的自定義事件取消綁 定。如果提供了事件類型作為參數(shù),則只刪除該類型的綁定事件。如果把在綁定時(shí)傳遞的處理函數(shù)作為第二個(gè)參數(shù),則只有這個(gè)特定的事件處理函數(shù)會(huì)被刪除。

<body onclick="MyBodyClick()">
 <div onclick="MyClickOut()">
  <div onclick="MyClickInner()">
   <span id="MySpan">I love JQuery!! </span>
  </div>
 </div>
 <span id="LooseFocus">失去焦點(diǎn)</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>

上面的代碼也很好理解,就是當(dāng)用戶的鼠標(biāo)在span上面停留的時(shí)候,然后把span的click事件給取消掉。所以,最后它只會(huì)彈出body里面的alert。

最后,簡(jiǎn)單的了解一下one()事件的使用,其實(shí)one和bind是一樣,都是為了綁定事件而產(chǎn)生的。One與bind基本上差不多,不同的在調(diào)用 jQuery.event.add時(shí),把注冊(cè)的事件處理的函數(shù)做了一個(gè)小小的調(diào)整。One調(diào)用了jQuery.event.proxy進(jìn)行了代理傳入的事 件處理函數(shù)。在事件觸發(fā)調(diào)用這個(gè)代理的函數(shù)時(shí),先把事件從cache中刪除,再執(zhí)行注冊(cè)的事件函數(shù)。這里就是閉包的應(yīng)用,通過閉包得到fn注冊(cè)的事件函數(shù) 的引用。 

使用規(guī)則:

one(type,[data],fn)

為每一個(gè)匹配元素的特定事件(像click)綁定一個(gè)一次性的事件處理函數(shù)。 在每個(gè)對(duì)象上,這個(gè)事件處理函數(shù)只會(huì)被執(zhí)行一次。其他規(guī)則與bind()函數(shù)相同。這個(gè)事件處理函數(shù)會(huì)接收到一個(gè)事件對(duì)象,可以通過它來阻止(瀏覽器)默認(rèn)的行為。如果既想取消默認(rèn)的行為,又想阻止事件起泡,這個(gè)事件處理函數(shù)必須返回false。

貼一下,bind和one的各自代碼的實(shí)現(xiàn),看官可以稍微的做一個(gè)比較:

Bind()代碼的實(shí)現(xiàn):

bind : function(type, data, fn) { 
 return type == "unload" ? this.one(type,data,fn) : this.each(function(){
 //fn || data, fn && data實(shí)現(xiàn)了data參數(shù)可有可無 
  jQuery.event.add(this, type, fn || data, fn && data); 
 }); 
}

One()代碼的實(shí)現(xiàn):

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->當(dāng)前的元素 
 }); 
 return this.each(function() { 
  jQuery.event.add(this, type, one, fn && data); 
 }); 
}

5.最后呢,其實(shí)想在貼一個(gè)冒泡事件,因?yàn)樵谔幚斫壎ㄊ录臅r(shí)候,如果調(diào)用內(nèi)部的事件 有可能會(huì)觸發(fā)外面的事件,所以給大伙一個(gè)借鑒吧。

這里可以參考一下javascript事件冒泡的文章:《JavaScript 事件冒泡簡(jiǎn)介及應(yīng)用》。

簡(jiǎn)單的說,何為冒泡事件?其實(shí),簡(jiǎn)單的理解是,也可以說是事件傳播,它會(huì)從內(nèi)部的控件廣播到父類的元素,然后接著一直往上到祖先級(jí)別的元素。

則 冒泡實(shí)例代碼:

<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>

希望本文所述對(duì)大家的jQuery程序設(shè)計(jì)有所幫助。

相關(guān)文章

  • jQuery簡(jiǎn)單實(shí)現(xiàn)對(duì)數(shù)組去重及排序操作實(shí)例

    jQuery簡(jiǎn)單實(shí)現(xiàn)對(duì)數(shù)組去重及排序操作實(shí)例

    這篇文章主要介紹了jQuery簡(jiǎn)單實(shí)現(xiàn)對(duì)數(shù)組去重及排序操作,結(jié)合實(shí)例形式分析了jQuery中unique方法進(jìn)行數(shù)組去重及sort方法排序的相關(guān)操作技巧,需要的朋友可以參考下
    2017-10-10
  • 使用element-ui的el-menu導(dǎo)航選中后刷新頁面保持當(dāng)前選中狀態(tài)

    使用element-ui的el-menu導(dǎo)航選中后刷新頁面保持當(dāng)前選中狀態(tài)

    這篇文章主要介紹了使用element-ui的el-menu導(dǎo)航選中后刷新頁面保持當(dāng)前選中狀態(tài),本文通過實(shí)例代碼給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2019-07-07
  • jquery延遲對(duì)象解析

    jquery延遲對(duì)象解析

    第一次認(rèn)識(shí)jquery延遲對(duì)象,這篇文章主要為大家詳細(xì)解析JQ延遲對(duì)象的相關(guān)概念,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2016-10-10
  • jquery實(shí)現(xiàn)頁面虛擬鍵盤特效

    jquery實(shí)現(xiàn)頁面虛擬鍵盤特效

    本文實(shí)例講述了jquery比較簡(jiǎn)潔的軟鍵盤特效實(shí)現(xiàn)方法。而且?guī)в袛?shù)字與字母切換功能,效果非常不錯(cuò),分享給大家供大家參考。
    2015-08-08
  • 用jQuery的AJax實(shí)現(xiàn)異步訪問、異步加載

    用jQuery的AJax實(shí)現(xiàn)異步訪問、異步加載

    這篇文章主要介紹了用jQuery的AJax實(shí)現(xiàn)異步訪問、異步加載,jQuery的ajax異步實(shí)現(xiàn)數(shù)據(jù)交互的相關(guān)技巧,并提供了完整示例demo供讀者參考,需要的朋友可以參考下
    2016-11-11
  • jQuery實(shí)現(xiàn)動(dòng)態(tài)給table賦值的方法示例

    jQuery實(shí)現(xiàn)動(dòng)態(tài)給table賦值的方法示例

    這篇文章主要介紹了jQuery實(shí)現(xiàn)動(dòng)態(tài)給table賦值的方法,結(jié)合具體實(shí)例形式分析了jQuery動(dòng)態(tài)操作table表格節(jié)點(diǎn)的相關(guān)技巧,需要的朋友可以參考下
    2017-07-07
  • jQuery簡(jiǎn)單設(shè)置文本框回車事件的方法

    jQuery簡(jiǎn)單設(shè)置文本框回車事件的方法

    這篇文章主要介紹了jQuery簡(jiǎn)單設(shè)置文本框回車事件的方法,涉及jQuery簡(jiǎn)單事件綁定與響應(yīng)操作相關(guān)技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下
    2016-08-08
  • jQuery Easyui學(xué)習(xí)之datagrid 動(dòng)態(tài)添加、移除editor

    jQuery Easyui學(xué)習(xí)之datagrid 動(dòng)態(tài)添加、移除editor

    使用easyui行編輯的時(shí)候完成編輯的功能比較簡(jiǎn)單,但是如果要根據(jù)一個(gè)框的值動(dòng)態(tài)改變別的值或者編輯的時(shí)候禁用某個(gè)框的時(shí)候就比較麻煩了,下面給大家介紹easyui datagrid 動(dòng)態(tài)添加、移除editor,感興趣的朋友一起學(xué)習(xí)吧
    2016-01-01
  • jquery入門—訪問DOM對(duì)象方法

    jquery入門—訪問DOM對(duì)象方法

    本文著重介紹:JavaScript訪問DOM對(duì)象方法/JQuery訪問DOM對(duì)象方法,通過JQuery庫中的方法訪問或控制頁面中的元素,比使用JavaScript代碼要簡(jiǎn)潔得多,而且兼容各瀏覽器,感興趣的朋友可以了解下
    2013-01-01
  • jQuery實(shí)現(xiàn)字符串全部替換的方法

    jQuery實(shí)現(xiàn)字符串全部替換的方法

    這篇文章主要介紹了jQuery實(shí)現(xiàn)字符串全部替換的方法,結(jié)合實(shí)例形式對(duì)比分析了使用Replace進(jìn)行替換的方法及使用正則進(jìn)行全部替換的相關(guān)操作技巧,需要的朋友可以參考下
    2016-12-12

最新評(píng)論

通山县| 习水县| 东兴市| 平定县| 呼玛县| 托里县| 石楼县| 莒南县| 漳州市| 南丹县| 肥西县| 张掖市| 托里县| 云阳县| 余江县| 旬阳县| 天津市| 祁东县| 广南县| 土默特左旗| 当阳市| 溆浦县| 渭源县| 小金县| 武胜县| 三原县| 深州市| 辽中县| 高雄县| 安义县| 毕节市| 九龙城区| 柘城县| 宕昌县| 孙吴县| 新昌县| 湟中县| 清徐县| 宝丰县| 霍林郭勒市| 玉溪市|