This article mainly introduces the usage of Bind() event in JQuery. It analyzes the function, characteristics and usage skills of Bind() event with examples. Friends in need can refer to this article
The example analyzes the usage of Bind() event in JQuery. Share it with everyone for your reference. The specific analysis is as follows:
Let’s take a look at its definition first:
.bind( eventType [, eventData], handler(eventObject))
. The main function of the Bind() method is to bind the object to it The above provides some behavior of event methods. The meanings of its three parameters are as follows:
eventType is a string type event type, which is the event you need to bind. Such types can include the following: blur, focus, focusin, focusout, load, resize, scroll, unload, click, dblclick, mousedown, mouseup, mousemove, mouseover, mouseout, mouseenter, mouseleave, change, select, submit, keydown, keypress , keyup, error. What needs to be noted here is that the event methods in JavaScript are used here, not in JQuery. The event methods in JQuery all have an extra "on" in front of JavaScript, such as onclick, onblur, etc.
The eventData parameter is an optional parameter, but it is rarely used in normal times. If this parameter is provided, then we can pass some additional information to the Event handling function. This parameter has a good use, which is to deal with problems caused by closures. I will give you an example later.
Handler is the processing number used for binding, which is actually the callback function, the corresponding method after processing the data.
1. The first simple bind () event---Hello Word
<input id="BtnFirst"type="button"value="Click Me"/> <script> $(function () { $("#BtnFirst").bind("click",function(){ alert("Hello World"); }); }) </script>
After opening the page, click the button "Click Me", "Hello World" will pop up. This is our simplest binding event. It's very simple.
2. Bind multiple events
We can bind multiple events through bind() (in fact, this is also a very famous event in JQuery and Linq Chain programming). The main function implemented is that when we click, "Hello World" pops up, and when we leave the button, a p is displayed.
<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>
This code page is easy to understand. When the button is clicked, a "Hello World" will pop up. When leaving, the p will be displayed. . For animations in JQuery, you can use "slow", "fast" and "normal". Of course, you can also set the relevant milliseconds.
3.bind() event object
Handler callback function can accept a parameter, when this function is called, a JavaScript event object will be passed in as a parameter.
Give me an example from the JQuery official website:
<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>
The main function here is to realize that when the user clicks on the p object, the current relative to The coordinates of the page are displayed in the span tag, and the event event is used here. Pass the parameters in.
4.unbind() event
unbind([type],[data],Handler) is the reverse operation of bind(), starting from each matching Remove the bound event from the element. If there are no parameters, all bound events are deleted. You can unbind custom events you registered with bind(). If an event type is provided as a parameter, only bound events of that type are removed. If a handler is passed as the second argument when binding, only that specific event handler will be removed.
<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>
The above code is also easy to understand. When the user's mouse stays on the span, the click event of the span is then cancelled. So, in the end it will only pop up the alert inside the body.
Finally, let’s briefly understand the use of one() event. In fact, one and bind are the same, both are generated for binding events. One is basically the same as bind. The difference is that when calling jQuery.event.add, the registered event processing function is slightly adjusted. One called jQuery.event.proxy to proxy the incoming event processing function. When an event triggers a call to this agent's function, the event is first deleted from the cache, and then the registered event function is executed. Here is the application of closure, through which the reference of the event function registered by fn is obtained.
Usage rules:
one(type,[data],fn)
Bind a one-time event handler function for each specific event (like click) of the matching element. This event handler is executed only once on each object. Other rules are the same as bind() function. This event handler will receive an event object, which can be used to prevent the default behavior. If you want to cancel the default behavior and prevent the event from bubbling, the event handler must return false.
Post it, the implementation of the respective codes of bind and one, the reader can make a slight comparison:
The implementation of the Bind() code:
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); }); }
Implementation of One() code:
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>
The above is the detailed content of Give you an in-depth understanding of the Bind() function in JQuery. For more information, please follow other related articles on the PHP Chinese website!

实现方法:1、用“$("img").delay(毫秒数).fadeOut()”语句,delay()设置延迟秒数;2、用“setTimeout(function(){ $("img").hide(); },毫秒值);”语句,通过定时器来延迟。

修改方法:1、用css()设置新样式,语法“$(元素).css("min-height","新值")”;2、用attr(),通过设置style属性来添加新样式,语法“$(元素).attr("style","min-height:新值")”。

区别:1、axios是一个异步请求框架,用于封装底层的XMLHttpRequest,而jquery是一个JavaScript库,只是顺便封装了dom操作;2、axios是基于承诺对象的,可以用承诺对象中的方法,而jquery不基于承诺对象。

增加元素的方法:1、用append(),语法“$("body").append(新元素)”,可向body内部的末尾处增加元素;2、用prepend(),语法“$("body").prepend(新元素)”,可向body内部的开始处增加元素。

在jquery中,apply()方法用于改变this指向,使用另一个对象替换当前对象,是应用某一对象的一个方法,语法为“apply(thisobj,[argarray])”;参数argarray表示的是以数组的形式进行传递。

删除方法:1、用empty(),语法“$("div").empty();”,可删除所有子节点和内容;2、用children()和remove(),语法“$("div").children().remove();”,只删除子元素,不删除内容。

去掉方法:1、用“$(selector).removeAttr("readonly")”语句删除readonly属性;2、用“$(selector).attr("readonly",false)”将readonly属性的值设置为false。

on()方法有4个参数:1、第一个参数不可省略,规定要从被选元素添加的一个或多个事件或命名空间;2、第二个参数可省略,规定元素的事件处理程序;3、第三个参数可省略,规定传递到函数的额外数据;4、第四个参数可省略,规定当事件发生时运行的函数。


Hot AI Tools

Undresser.AI Undress
AI-powered app for creating realistic nude photos

AI Clothes Remover
Online AI tool for removing clothes from photos.

Undress AI Tool
Undress images for free

Clothoff.io
AI clothes remover

AI Hentai Generator
Generate AI Hentai for free.

Hot Article

Hot Tools

WebStorm Mac version
Useful JavaScript development tools

SublimeText3 Linux new version
SublimeText3 Linux latest version

ZendStudio 13.5.1 Mac
Powerful PHP integrated development environment

SublimeText3 Mac version
God-level code editing software (SublimeText3)

SublimeText3 English version
Recommended: Win version, supports code prompts!
