如果不使用JQuery,JQuery里面的事件方法均在Java

作者: 前端  发布:2019-09-04

 

JQuery中Bind()事件用法分析

  这篇文章主要介绍了JQuery中Bind()事件用法,实例分析了Bind()事件的功能、特点与绑定事件时的使用技巧,需要的朋友可以参考下

  本文实例分析了JQuery中Bind()事件用法。分享给大家供大家参考。具体分析如下:

  我们先看一下它的定义:

  ?

1

.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

  ?

1

2

3

4

5

6

7

8

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

  ?

1

2

3

4

5

6

7

8

9

10

11

12

13

<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官网上面的例子:

  ?

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

<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()注册的自定义事件取消绑 定。如果提供了事件类型作为参数,则只删除该类型的绑定事件。如果把在绑定时传递的处理函数作为第二个参数,则只有这个特定的事件处理函数会被删除。

  ?

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

<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注册的事件函数 的引用。

  使用规则:

  ?

1

one(type,[data],fn)

  为每一个匹配元素的特定事件(像click)绑定一个一次性的事件处理函数。 在每个对象上,这个事件处理函数只会被执行一次。其他规则与bind()函数相同。这个事件处理函数会接收到一个事件对象,可以通过它来阻止(浏览器)默认的行为。如果既想取消默认的行为,又想阻止事件起泡,这个事件处理函数必须返回false。

  贴一下,bind和one的各自代码的实现,看官可以稍微的做一个比较:

  Bind()代码的实现:

  ?

1

2

3

4

5

6

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()代码的实现:

  ?

1

2

3

4

5

6

7

8

9

10

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 事件冒泡简介及应用》。

  简单的说,何为冒泡事件?其实,简单的理解是,也可以说是事件传播,它会从内部的控件广播到父类的元素,然后接着一直往上到祖先级别的元素。

  则 冒泡实例代码:

  ?

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

<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程序设计有所帮助。

这篇文章主要介绍了JQuery中Bind()事件用法,实例分析了Bind()事件的功能、特点与绑定事件时的使用技巧,需要的朋友...

JQuery中Bind()事件用法分析,jquerybind

本文实例分析了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>

<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()">
   I love JQuery!! 
  </div>
 </div>
 失去焦点
</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()">

     I love JQuery!!

  </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程序设计有所帮助。

本文实例分析了JQuery中Bind()事件用法。分享给大家供大家参考。具体分析如下: 我们先看一下它的定义...

本文实例分析了JQuery中Bind()事件用法。分享给大家供大家参考。具体分析如下:

想了很久,该不该发到圆子的首页,因为从来没有发到首页,这里高手众多生怕被人笑话。后来,旁边的一个同事说,还行,就发了。如果有什么太浅显的地方,希望大家能多多包涵。

我们先看一下它的定义:

随着现在JQuery这个javascript的越来越强大,在我们平常的前端UI开发,如果不使用JQuery,说明你已经很out了。今天我们来学习一下 JQuery的bind事件。虽然,这个话题被很多写了很多,但我还是想自己在这里班门弄斧一下,希望各位看官不要喷。如果有什么意见,可以直接进行交流,共同进步。

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

JQuery 官网的Bind事件的API吧:地址连接。如果各位有兴趣看洋文的,可是去看看。

.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 等等。

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

eventData参数是一个可选参数,不过它在平时用的比较少。如果提供了这个参数,那么我们就能把一些附加信息传递给事件处理函数了。这个参数有个很好的用处,就是处理闭包带来的问题。待会在给大家举实例。

 .Bind()方法的主要功能是在向它绑定的对象上面提供一些事件方法的行为。期中它的三个参数的意义分别如下:

Handler是用来绑定的处理数,其实也也就是回调函数,处理完数据之后相应的方法。

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

1.第一个简单的bind ()事件---Hello Word

eventData参数是一个可选参数,不过它在平时用的比较少。如果提供了这个参数,那么我们就能把一些附加信息传递给事件处理函数了。这个参数有个很好的用处,就是处理闭包带来的问题。待会在给大家举实例。

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

Handler是用来绑定的处理函数,其实也也就是回调函数,处理完数据之后相应的方法。

打开页面之后,点击按钮“Click Me”,就会弹出”Hello World”。这算是我们最简单的绑定事件吧。很简单吧。


2.绑定多个事件

 

我们可以通过bind()来绑定多个事件(其实,这也就是JQuery以及Linq中非常有名的链式编程)。实现的主要功能就是当我们点击的时候,弹出“Hello World”,当离开button的时候,显示出一个div。

9159.com 1

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

图一: jquery里的bind参数提示

这段代码页很容易理解,就是当button被点击的时候,弹出一个"Hello World",在离开的时候,在把div给显示出来。JQuery里的动画,均可以用“slow”、“fast”和“normal”,当然你还可以设置相关的毫秒数。

1.第一个简单的bind ()事件---Hello Word

3.bind()事件的对象

Html Code:

Handler这个回调函数可以接受一个参数,当这个函数被调用时,一个JavaScript事件对象会作为一个参数传进来。

 1 <input id="BtnFirst"type="button"value="Click Me"/>

这个事件对象通常是没有必要且可以省略的参数,因为当这个事件处理函数绑定的时候就能够明确知道他在触发的时候应该做些什么,通常就已经可以获得充分的信息了。然而在有些时候,在事件初始化的时候需要获取更多关于用户环境的信息。

JavaScript Code:

给一个JQuery官网上面的例子:

 1 $(function () {
2             $("#BtnFirst").bind("click", function () {
3                 alert("Hello World");
4             });
5  })
<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>

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

打开页面之后,点击按钮“Click Me”,就会弹出”Hello World”。这算是我们最简单的绑定事件吧。很简单吧。

这里的主要功能是为了实现当用户点击p这个对象的时候,把当前相对于页面的坐标显示在span标签里面,这里就用到了event这个事件。把参数传进去。

2.绑定多个事件

4.unbind()事件

我们可以通过bind()来绑定多个事件(其实,这也就是JQuery以及Linq中非常有名的链式编程)。实现的主要功能就是当我们点击的时候,弹出“Hello World”,当离开button的时候,显示出一个div。

unbind([type],[data],Handler) 是 bind()的反向操作,从每一个匹配的元素中删除绑定的事件。如果没有参数,则删除所有绑定的事件。你可以将你用bind()注册的自定义事件取消绑 定。如果提供了事件类型作为参数,则只删除该类型的绑定事件。如果把在绑定时传递的处理函数作为第二个参数,则只有这个特定的事件处理函数会被删除。

Html Code:

<body onclick="MyBodyClick()">
 <div onclick="MyClickOut()">
  <div onclick="MyClickInner()">
   I love JQuery!! 
  </div>
 </div>
 失去焦点
</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>
 1 <div>
2    <input id="BtnFirst"type="button"value="Click Me"/></div>
3    <div id="TestDiv"style=" width:200px; height:200px; display:none; background-color:Red;">
4 </div>

上面的代码也很好理解,就是当用户的鼠标在span上面停留的时候,然后把span的click事件给取消掉。所以,最后它只会弹出body里面的alert。

JavaScript Code:

最后,简单的了解一下one()事件的使用,其实one和bind是一样,都是为了绑定事件而产生的。One与bind基本上差不多,不同的在调用 jQuery.event.add时,把注册的事件处理的函数做了一个小小的调整。One调用了jQuery.event.proxy进行了代理传入的事 件处理函数。在事件触发调用这个代理的函数时,先把事件从cache中删除,再执行注册的事件函数。这里就是闭包的应用,通过闭包得到fn注册的事件函数 的引用。 

 1 $(function () {
2             $("#BtnFirst").bind("click", function () {
3                 alert("Hello World");
4             }).bind("mouseout", function () {
5                 $("#TestDiv").show("slow");
6             });
7  })

使用规则:

这段代码页很容易理解,就是当button被点击的时候,弹出一个"Hello World",在离开的时候,在把div给显示出来。JQuery里的动画,均可以用“slow”、“fast”和“normal”,当然你还可以设置相关的毫秒数。

one(type,[data],fn)

3.bind()事件的对象

为每一个匹配元素的特定事件(像click)绑定一个一次性的事件处理函数。 在每个对象上,这个事件处理函数只会被执行一次。其他规则与bind()函数相同。这个事件处理函数会接收到一个事件对象,可以通过它来阻止(浏览器)默认的行为。如果既想取消默认的行为,又想阻止事件起泡,这个事件处理函数必须返回false。

Handler这个回调函数可以接受一个参数,当这个函数被调用时,一个JavaScript事件对象会作为一个参数传进来。

贴一下,bind和one的各自代码的实现,看官可以稍微的做一个比较:

这个事件对象通常是没有必要且可以省略的参数,因为当这个事件处理函数绑定的时候就能够明确知道他在触发的时候应该做些什么,通常就已经可以获得充分的信息了。然而在有些时候,在事件初始化的时候需要获取更多关于用户环境的信息。

Bind()代码的实现:

给一个JQuery官网上面的例子:

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); 
 }); 
}

Css Code:

One()代码的实现:

 1 <style> 2 p {background:yellow;font-weight:bold;cursor:pointer;3 padding:5px;}
4 p.over {background:#ccc;}
5 span {color:red;}
6 </style>
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); 
 }); 
}

Html Code:

5.最后呢,其实想在贴一个冒泡事件,因为在处理绑定事件的时候,如果调用内部的事件 有可能会触发外面的事件,所以给大伙一个借鉴吧。

 1 <p>Click or double click here.</p>
2 

这里可以参考一下javascript事件冒泡的文章:《JavaScript 事件冒泡简介及应用》。

JavaScript Code:

简单的说,何为冒泡事件?其实,简单的理解是,也可以说是事件传播,它会从内部的控件广播到父类的元素,然后接着一直往上到祖先级别的元素。

 1 <script>
2 $("p").bind("click", function(event){
3 var str = "( "   event.pageX   ", "   event.pageY   " )";
4 $("span").text("Click happened! "   str);
5 });
6 $("p").bind("dblclick", function(){
7 $("span").text("Double-click happened in "   this.nodeName);
8 });
9 $("p").bind("mouseenter mouseleave", function(event){
10 $(this).toggleClass("over");
11 });
12 
13 </script>

则 冒泡实例代码:

这里的主要功能是为了实现当用户点击p这个对象的时候,把当前相对于页面的坐标显示在span标签里面,这里就用到了event这个事件。把参数传进去。
4.unbind()事件

<body onclick="MyBodyClick()">
 <div onclick="MyClickOut()">
  <div onclick="MyClickInner()">

     I love JQuery!!

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

unbind([type],[data],Handler) 是 bind()的反向操作,从每一个匹配的元素中删除绑定的事件。如果没有参数,则删除所有绑定的事件。你可以将你用bind()注册的自定义事件取消绑定。如果提供了事件类型作为参数,则只删除该类型的绑定事件。如果把在绑定时传递的处理函数作为第二个参数,则只有这个特定的事件处理函数会被删除。

希望本文所述对大家的jQuery程序设计有所帮助。

Html Code:

您可能感兴趣的文章:

  • jQuery事件绑定.on()简要概述及应用
  • jquery移除、绑定、触发元素事件使用示例详解
  • jQuery中的.bind()、.live()和.delegate()之间区别分析
  • JQuery中绑定事件(bind())和移除事件(unbind())
  • jQuery事件绑定on()、bind()与delegate() 方法详解
  • Query中click(),bind(),live(),delegate()的区别
  • 让IE8浏览器支持function.bind()方法
  • 浅谈javascript中call()、apply()、bind()的用法
  • jQuery绑定事件方法及区别(bind,click,on,live,one)
 1 <body onclick="MyBodyClick()">
2     <div onclick="MyClickOut()">
3         <div onclick="MyClickInner()">
4             I love JQuery!! 
5         </div>
6     </div>
7     失去焦点
8 </body>

JavaScript Code:

 1  function MyClickOut() {
2             alert("outer Div");
3         }
4         function MyClickInner() {
5             alert("Inner Div");
6         }
7         function MyBodyClick() {
8             alert("Body Click");
9         }
10         var foo = function () {
11             alert("I'm span.");
12         }
13         $(function () {
14             $("#MySpan").bind("click", foo);
15         })       
16         $(function () {
17             $("#LooseFocus").unbind("click", foo);
18         })

上面的代码也很好理解,就是当用户的鼠标在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()代码的实现:

 1 bind : function(type, data, fn) { 
2 return type == "unload" ? this.one(type, data, fn) : this 
3 .each(function() {//fn || data, fn && data实现了data参数可有可无 
4 jQuery.event.add(this, type, fn || data, fn && data); 
5 }); }, 

One()  代码的实现:

 1 one : function(type, data, fn) { 
2 var one = jQuery.event.proxy(fn || data, function(event) { 
3 jQuery(this).unbind(event, one); 
4 return (fn || data).apply(this, arguments);/this->当前的元素 
5 }); 
6 return this.each(function() { 
7 jQuery.event.add(this, type, one, fn && data); 
8 }); 
9 }, 

 

5.最后呢,其实想在贴一个冒泡事件,因为在处理绑定事件的时候,如果调用内部的事件 有可能会触发外面的事件,所以给大伙一个借鉴吧。

javascript事件冒泡的文章:

简单的说,何为冒泡事件?其实,简单的理解是,也可以说是事件传播,它会从内部的控件广播到父类的元素,然后接着一直往上到祖先级别的元素。

 

则 冒泡实例代码:

Html Code:

 1 <body onclick="MyBodyClick()">
2 <div onclick="MyClickOut()">
3         <div onclick="MyClickInner()">
4             
5                 I love JQuery!!
6             
7        </div>
8 </div>
9 </div>
10 </body>

JavaScript Code:

 1 <script type="text/javascript">
2         function MyClickOut() {
3             alert("outer Div");
4         }
5         function MyClickInner() {
6             alert("Inner Div");
7         }
8        function MyBodyClick() {
9             alert("Body Click");
10         }
11 
12         $(function () {
13             $("#MySpan").bind("click", function (event) {
14                 alert("I'm span");
15                 event.stopPropagation();
16             });
17         </script>

所以,当你点击最里面的span的时候,外面的div依次的触发 知道body里。 我粗劣的画了一个图,如下:

9159.com 2

 

完毕,因为这篇博客写了整理了好几天,虽然有些地方很easy,不过如果不好,请大家斧正。就当做一个笔记吧。

周末愉快 everybody

 

摘自:浪迹天涯

...

本文由9159.com发布于前端,转载请注明出处:如果不使用JQuery,JQuery里面的事件方法均在Java

关键词: 9159.com