bind 订阅
bind,英文单词,及物动词、不及物动词、名词,作及物动词时意为“绑;约束;装订;包扎;凝固”,作不及物动词时意为“结合;装订;有约束力;过紧”,作名词时意为“捆绑;困境;讨厌的事情;植物的藤蔓,人名;(德)宾德”。 展开全文
bind,英文单词,及物动词、不及物动词、名词,作及物动词时意为“绑;约束;装订;包扎;凝固”,作不及物动词时意为“结合;装订;有约束力;过紧”,作名词时意为“捆绑;困境;讨厌的事情;植物的藤蔓,人名;(德)宾德”。
信息
外文名
bind
词    性
及物动词、不及物动词、名词
bind单词发音
英[baɪnd]美[baɪnd] [1] 
收起全文
精华内容
参与话题
问答
  • bind()详解

    千次阅读 2017-10-31 10:14:21
    bind()函数用于为每个匹配元素的一个或多个事件绑定事件处理函数。 此外,你还可以额外传递给事件处理函数一些所需的数据。 执行bind()时,事件处理函数会绑定到每个匹配元素上。因此你使用bind()所有button...

    bind()函数用于为每个匹配元素的一个或多个事件绑定事件处理函数

    此外,你还可以额外传递给事件处理函数一些所需的数据。

    执行bind()时,事件处理函数会绑定到每个匹配元素上。因此你使用bind()所有button元素绑定了click事件,是为当时文档中存在的每个button元素绑定click事件。如果之后你向文档中添加了新的button元素,绑定事件不会对其生效。如果你希望绑定事件对未来新添加的元素也生效,请使用on()delegate()live()等事件函数(尽量优先使用靠前的事件函数)。

    此外,你可以为同一元素、同一事件类型绑定多个事件处理函数。触发事件时,jQuery会按照绑定的先后顺序依次执行绑定的事件处理函数。

    要删除通过bind()绑定的事件,请使用unbind()函数。

    该函数属于jQuery对象(实例)。

    语法

    bind()函数主要有以下两种形式的用法:

    用法一

    jQueryObject.bind( events [, data ], handler )

    用法二:jQuery 1.4.3 新增支持该用法。

    jQueryObject.bind( events [, data ] [, isDefaultBubble ] )

    用法三:jQuery 1.4 新增支持该用法。

    jQueryObject.bind( eventsMap )

    参数

    参数 描述
    events String类型一个或多个用空格分隔的事件类型和可选的命名空间,例如"click"、"focus click"、"keydown.myPlugin"。
    data 可选/任意类型触发事件时,需要通过event.data传递给事件处理函数的任意数据。
    handler Function类型指定的事件处理函数。
    isDefaultBubble 可选/Boolean类型指定触发事件时,是否允许元素的默认行为和事件冒泡。默认为true
    eventsMap Object类型一个Object对象,其每个属性对应事件类型和可选的命名空间(参数events),属性值对应绑定的事件处理函数(参数handler)。

    关于参数events中可选的命名空间(1.4.3+才支持),请参考最下面的示例代码。

    参数handler中的this指向当前DOM元素。bind()还会为handler传入一个参数:表示当前事件的Event对象

    参数handler的返回值与DOM原生事件的处理函数返回值作用一致。例如submit(表单提交)事件的事件处理函数返回false,可以阻止表单的提交。

    参数isDefaultBubble用于指示是否允许元素的默认行为和事件冒泡。如果该值为false,它将阻止元素的默认行为(例如:触发click事件的链接的默认跳转行为,触发submit事件的表单的默认提交行为)和事件的冒泡传递。

    返回值

    bind()函数的返回值为jQuery类型,返回当前jQuery对象本身。

    示例&说明

    以点击事件("click")为例,以下是jQuery中事件函数的常规用法(某些函数也存在其它形式的用法,此处暂不列出):

    // 这里的选择器selector用于指定可以触发事件的元素
    // 这里的选择器ancestor应是selector的祖辈元素,selector触发的事件可以被其祖辈元素在事件流中捕获,从而以"委托代理"的形式触发事件。
    
    // jQuery 1.0+ (1.4.3+支持参数data)
    $("selector").click( [ data ,] handler );
    
    // jQuery 1.0+ (1.4.3+支持参数data)
    $("selector").bind( "click" [, data ], handler );
    
    // jQuery 1.3+ (1.4+支持参数data)
    $("selector").live( "click" [, data ], handler );
    
    // jQuery 1.4.2+
    $("ancestor").delegate( "selector", "click" [, data ], handler );
    
    // jQuery 1.7+
    $("ancestor").on( "click", "selector" [, data ], handler );

    请参考下面这段初始HTML代码:

    <div id="n1">
        <p id="n2"><span>CodePlayer</span></p>
        <p id="n3"><span>专注于编程开发技术分享</span></p>
        <em id="n4">http://www.365mini.com</em>
    </div>
    <p id="n5">Google</p>

    我们为<div>中的所有<p>元素绑定点击事件:

    //为div中的所有p元素的click事件绑定事件处理函数
    //只有n2、n3可以触发该事件
    $("div p").bind("click", function(){
    // 这里的this指向触发点击事件的p元素(Element)
        alert( $(this).text() );
    });

    运行代码(以下代码请自行复制到演示页面运行)

    此外,我们还可以同时绑定多个事件,并为事件处理函数传递一些附加的数据,我们可以通过jQuery为事件处理函数传入的参数event(Event事件对象)来进行处理:

    var obj = { id: 5, name: "王五" };
    
    //为n5绑定mouseenter mouseleave两个事件,并为其传入附加数据obj
    // 附加数据可以是任意类型
    $("#n5").bind("mouseenter mouseleave", obj, function(event){
        var $me = $(this);
        var obj = event.data; // 这就是传入的附加数据
        if( event.type == "mouseenter"){
            $me.html( "你好," + obj.name + "!");
        }else if(event.type == "mouseleave" ){
            $me.html( "再见," + obj.name + "!");      
        }           
    } );

    此外,如果符合条件的元素是bind()函数执行后新添加的,绑定事件不会对其生效。同样以初始HTML代码为例,我们可以编写如下jQuery代码:

    //为div中的所有p元素的click事件绑定事件处理函数
    //只有n2、n3可以触发该事件
    $("div p").bind("click", function(event){
        alert( $(this).text() );
    });
    
    // 新添加的n6不会触发上述click事件
    $("#n1").append('<p id="n6">上述绑定的click事件不会对该元素也生效!</p>');

    参数events还支持为事件类型附加额外的命名空间。当为同一元素绑定多个相同类型的事件处理函数时。使用命名空间,可以在触发事件、移除事件时限定触发或移除的范围。

    function clickHandler(event){
        alert( "触发时的命名空间:[" + event.namespace + "]");
    }
    
    var $p = $("p");
    
    // A:为所有p元素绑定click事件,定义在foo和bar两个命名空间下
    $p.bind( "click.foo.bar", clickHandler );
    
    // B:为所有p元素绑定click事件,定义在test命名空间下
    $p.bind( "click.test", clickHandler );
    
    var $n2 = $("#n2");
    
    // 触发所有click事件
    $n2.trigger("click"); // 触发A和B (event.namespace = "")
    
    // 触发定义在foo命名空间下的click事件
    $n2.trigger("click.foo"); // 触发A (event.namespace = "foo")
    // 触发定义在bar命名空间下的click事件
    $n2.trigger("click.bar"); // 触发A (event.namespace = "bar")
    // 触发同时定义在foo和bar两个命名空间下的click事件
    $n2.trigger("click.foo.bar"); // 触发A (event.namespace = "bar.foo")
    
    // 触发定义在test命名空间下的click事件
    $n2.trigger("click.test"); // 触发B (event.namespace = "test")

    bind()函数的参数eventsMap是一个对象,可以"属性-值"的方式指定多个"事件类型-处理函数"。对应的示例代码如下:

    var eventsMap = {
        "mouseenter": function(event){
            $(this).html( "Hello!");        
        },
        
        "mouseleave": function(event){
            $(this).html( "Bye!");
        }
    };
    
    //为n5绑定mouseenter mouseleave两个事件
    $("#n5").bind( eventsMap );
    展开全文
  • bind函数详解

    万次阅读 2013-10-28 23:33:45
    前面我们已经说了, 套接字也创建了, “地方”也定义了,下面就需要将socket放置在这个“地方”(TCP),将他们紧紧地捆绑在一起,用bind函数吧, 我们来看看函数原型: int PASCAL FAR bind (SOCKET s, const struct ...

          前面我们已经说了, 套接字也创建了, “地方”也定义了,下面就需要将socket放置在这个“地方”(TCP),将他们紧紧地捆绑在一起,用bind函数吧, 我们来看看函数原型:

    int PASCAL FAR bind (SOCKET s, const struct sockaddr FAR *addr, int namelen);

         第一个参数当然是待绑定的套接字啦,第二个参数是标识绑定在哪个“地方”, 第三个参数是这个“地方”的占地大小。

         返回值表示绑定操作是否成功,0表示成功, -1表示不成功。函数的返回值千万不要忽视,上次就被人说了。

     

        一般是这么调用的:

         iRet = bind(sockSrv,(SOCKADDR*)&addrSrv, sizeof(SOCKADDR)); // 注意强制转换


         我们来对比一下文件I/O操作和网络I/O操作: 打开一个文件后, 便可以对文件进行读写操作了, 但是, 网络I/O实际上有三个步骤来完成这个功能:

         1. 打开/创建socket

         2. 命名socket, 我们知道, socket名称包含"协议, ip地址,  端口号"这三个要素, 而命名就是通过调用bind函数把socket与这三个要素绑定一起来。

         3. 建立连接


         在后面的博文中, 我们将继续学习bind.

    展开全文
  • JS中的bind()方法

    万次阅读 2019-01-10 22:52:11
    Function.prototype.bind()方法 转自——https://blog.csdn.net/kongjunchao159/article/details/59113129 bind()方法主要就是将函数绑定到某个对象,bind()会创建一个函数,函数体内的this对象的值会被绑定到传入...

    Function.prototype.bind()方法

    转自——https://blog.csdn.net/kongjunchao159/article/details/59113129

    bind()方法主要就是将函数绑定到某个对象,bind()会创建一个函数,函数体内的this对象的值会被绑定到传入bind()第一个参数的值,例如,f.bind(obj),实际上可以理解为obj.f(),这时,f函数体内的this自然指向的是obj

    例子

    var a = {
        b : function(){
            var func = function(){
                console.log(this.c);
            }
            func();
        },
        c : 'Hello!'
    }
    a.b();
    //undefined
    注意:这里的this指向的是全局作用域,所以会返回undefined
    var a = {
        b : function(){
            var that = this;
            var func = function(){
                console.log(that.c);
            }
            func();
        },
        c : 'Hello!'
    }
    a.b();
    //Hello!
    注意:可以通过赋值的方式将this赋值给that
    var a = {
        b : function(){
            var func = function(){
                console.log(this.c);
            }.bind(this);
            func();
        },
        c : 'Hello!'
    }
    a.b();
    //Hello!
     
    var a = {
        b : function(){
            var func = function(){
                console.log(this.c);
            }
            func.bind(this)();
        },
        c : 'Hello!'
    }
    a.b();
    //Hello!

    注意:当然,也可以通过bind的方式绑定this,上述两种bind绑定的方式都可以
    再看另外一种用法

    例子

    function f(y, z){
        return this.x + y + z;
    }
    var m = f.bind({x : 1}, 2);
    console.log(m(3));
    //6

    注意:这里bind方法会把它的第一个实参绑定给f函数体内的this,所以这里的this即指向{x : 1}对象,从第二个参数起,会依次传递给原始函数,这里的第二个参数2,即是f函数的y参数,最后调用m(3)的时候,这里的3便是最后一个参数z了,所以执行结果为1 + 2 + 3 = 6
    分步处理参数的过程其实是一个典型的函数柯里化的过程(Curry)

    我们再来看一道题目

    var a = document.write;
    a('hello');
    //Error
     
    a.bind(document)('hello');
    //hello
     
    a.call(document, 'hello');
    //hello


    注意:这里直接调用a的话,this指向的是global或window对象,所以会报错,通过bind或者call的方式绑定this至document对象,即可正常调用
    可以用bind的方式预定义参数,例子

    function list(){
        return Array.prototype.slice.call(arguments);
    }
    var list1 = list(1, 2, 3);
    //[1, 2, 3]
     
    //预定义参数
    var a = list.bind(undefined, 10);
     
    var list2 = a();
    //[10]
     
    var list3 = a(1, 2, 3);
    //[10, 1, 2, 3]


    注意:这里的Array.prototype.slice.call(arguments)是用来将参数由类数组转换为真正的数组,a的第一个参数undefined表示this的指向,第二个参数10即表示list中真正的第一个参数,依次类推


    如何自己实现bind方法?

    因为bind()函数发布在ES5中,因此并不能很好的在所有浏览器中运行,需要Polyfill,当然现在几乎所有现代浏览器都支持ES5

    //my_bind方法支持绑定对象
    Function.prototype.my_bind = function(context){
        var self = this;
        return function(){
            return self.apply(context, arguments);
        }
    }
     
    //测试
    function a(){
        return this.name;
    }
    a();    //''
     
    var b = {name : 'kong'};
    a.bind(b)();    //kong
     
    a.my_bind(b)();        //kong


    上述是最简单的一种实现方式,仅可用来绑定,不可传参
    更加健壮的方式:

    //my_bind方法不仅可以绑定对象,还可以传参
    Function.prototype.my_bind = function(context){
        var args = Array.prototype.slice.call(arguments, 1);
        //args [7, 8]
        var self = this;
        return function(){
            var innerArgs = Array.prototype.slice.call(arguments);
            //innerArgs [9]
            var finalArgs = args.concat(innerArgs);
            //finalArgs [7, 8, 9]
            return self.apply(context, finalArgs);
        }
    }
     
    //测试
    function a(m, n, o){
        return this.name + ' ' + m + ' ' + n + ' ' + o;
    }
     
    var b = {name : 'kong'};
     
    a.my_bind(b, 7, 8)(9);        //kong 7 8 9


    注意:这里my_bind函数中args表示的是在bind时传入的预定义参数,这里即为7和8,分别表示m和n,return中的innerArgs表示的是调用a的时候传入的参数,这里表示9,即o,最后用concat连接两个数组,即为finalArgs,所以最后执行的是a(7, 8, 9),this指向b,实现了一个完善点的bind方法

    处理bind返回的函数如果作为构造函数,搭配new关键字出现的话,我们绑定的this就需要被忽略的兼容性问题

    更加完美的方式

    //bind返回的函数如果作为构造函数,搭配new关键字出现的话,我们绑定的this就需要被忽略
    //处理构造函数场景下的兼容
    Function.prototype.bind = Function.prototype.bind || function(context){
        //确保调用bind方法的一定要是一个函数
        if(typeof this !== "function"){
            throw new TypeError("Function.prototype.bind - what is trying to be bound is not callable");
        }
        var args = Array.prototype.slice.call(arguments, 1);
        var self = this;
        var F = function(){};
        F.prototype = this.prototype;
        var bound = function(){
            var innerArgs = Array.prototype.slice.call(arguments);
            var finalArgs = args.concat(innerArgs);
            return self.apply(this instanceof F ? this : context || this, finalArgs);
        }
        bound.prototype = new F();
        return bound;
    }
    
    

     

    展开全文
  • Linux下bind服务的安装与使用

    万次阅读 2018-05-29 17:42:13
    首先先查看本机是否安装了bindrpm -qa | grep bind*如果没有安装的话使用命令yum install bind轻松安装然后我们先完成在上一章提到的:LAMP基于IP的DNS配置 相关操作之后执行如下操作1.首先先修改主配置文件 vi /...
    首先先查看本机是否安装了bind
    rpm -qa | grep bind*


    如果没有安装的话使用命令
    yum install bind
    轻松安装

    然后我们先完成在上一章提到的:LAMP基于IP的DNS配置    相关操作之后
    执行如下操作

    1.首先先修改主配置文件  vi /etc/name.conf
    将其中的

    listen-on port 53 {}其中的内容修改为 any;
    再将其中的allow-query {}中的内容改为any;





    2.我们进入/etc/named.rfc1912.zones
    在文本末尾加入刚刚我们书写的三个域的配置
    zone "seca.com" IN {                                                #seca.com是我们自定义的域名
            type master;
            file "seca.com";                                                #seca.com是域名下的DNS解析库文件
            allow-update { none; };
    };
    zone "secb.com" IN {
            type master;
            file "secb.com";
            allow-update { none; };
    };
    zone "secc.com" IN {
            type master;
            file "secc.com";
            allow-update { none; };
    };



    3.我们进入 /var/named/目录
    创建三个DNS库文件  seca.com  secb.com   secc.com
    可以使用指令
    cp named.localhost seca.com
    cp named.localhost secb.com
    cp named.localhost secc.com
    然后vi seca.com
    将其中的文本改为
    $TTL 1D
    @       IN SOA  @ rname.invalid. (
                                            0       ; serial
                                            1D      ; refresh
                                            1H      ; retry
                                            1W      ; expire
                                            3H )    ; minimum
            NS      @
    @       IN      A   192.168.43.29        # @表示本机DNS解析   IN表示在域内使用  A表示记录类型为A记录 ip为解析ip 
    www     IN      A   192.168.43.202    # www表示主机    A也可以写成MX邮箱地址类型  都是可以的

    然后保存退出
    重启bind服务
    service named restart


    使用nslookup命令可以看到DNS解析生效了
    成功将www.secc.com 解析为192.168.43.203

    然后进入浏览器打开输入域名访问c.html文件

    实验成功!




    展开全文
  • bind函数的作用

    千次阅读 2018-10-25 23:13:03
    调用bind函数,将该套接字绑定一个地址和端口号 调用listen函数,使用该套接字监听连接请求 调用accept函数,接受该套接字连接请求 客户端执行流程 调用socket函数,创建一个套接字 调用connect函数,使用该套接字...
  • bind实现原理

    2019-03-15 10:16:07
    bind 官方描述 bind() 函数会创建一个新函数(称为绑定函数),新函数与被调函数(绑定函数的目标函数)具有相同的函数体(在 ECMAScript 5 规范中内置的call属性)。当目标函数被调用时 this 值绑定到 bind() 的...
  • V-bind详细使用

    万次阅读 2018-10-22 19:02:43
    v-bind 主要用于属性绑定,Vue官方提供了一个简写方式 :bind,例如: 1 2 &lt;!-- 完整语法 --&gt; &lt;a v-bind:href="url"&gt;&lt;/a&gt; ...
  • this与bind(this)

    千次阅读 多人点赞 2019-02-23 17:34:52
    文章目录this与bind(this)thisthis详细- 全局环境- 函数内1. 普通函数2. 箭头函数3. 对象中的函数原型链中的thisgetter 与 setter 中的 thisbind(this) ReactNative系列-文章 this与bind(this) this this指向的是...
  • bind()

    2018-12-28 11:44:29
    bind; 在创建函数的时候,定义好函数的this指向,然后函数的this指向不因任何外部环境而改变; 函数的this指向 , 函数的调用者; var obj = { name:"obj", a : function(){ console.log(...
  • v-bind介绍

    2020-11-11 00:27:55
    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> </head> <body> <div id="app">...img src="{{imgURL}}" a...
  • DNS(bind)服务器的安装与配置

    万次阅读 2018-09-01 22:13:16
    DNS基础  DNS 是计算机域名系统 (Domain Name System 或Domain Name Service) 的缩写,域名服务器是进行域名(domain name)和与之相对应的IP地址 (IP address)转换的服务器。DNS中保存了一张域名(domain name)和与...
  • 网络编程之bind函数

    万次阅读 多人点赞 2018-04-10 21:56:15
    基本TCP客户端/服务器程序的套接字函数1、bind函数把一个本地协议地址赋予一个套接字。对于网际协议,协议地址是32位的IPv4地址或是128位的IPv6地址与16位的TCP或UDP端口号的组合。#include&lt;sys/socket.h&...
  • bind 用法及简单实现原理

    万次阅读 多人点赞 2018-05-03 10:24:40
    bind 和 call/apply 一样,都是用来改变上下文 this 指向的,不同的是,call/apply 是直接使用在函数上,而 bind 绑定 this 后返回一个函数(闭包),如下: var obj = { init: 1, add: function(a, b) { ...
  • bind()函数介绍

    万次阅读 2015-03-08 15:42:26
    bind()函数介绍  在建立套接字文件描述符成功后,需要对套接字进行地址和端口的绑定,才能进行数据的接收和发送操作。 函数原型  bind()函数将长度为addlen的struct sockadd类型的参数my_addr与sockfd绑定在一起,...
  • 如果要理解bind函数最好和lambda表达式一起理解,因为他们要解决相同的问题。也就是要解决回调函数的参数适配问题。所以如果不太了解回调函数和lambda表达式的话请戳这里和这里。理解了回调函数和lambda表达式之后,...
  • (精华)2020年7月12日 vue v-bind的使用

    万次阅读 2020-07-12 18:06:30
    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>属性绑定和属性的简写</title> <script src=... window.onload=function(){
  • 报错 2020-06-14 22:14:46.251 ERROR 20640 --- [ main] o.s.b.d.LoggingFailureAnalysisReporter : *************************** APPLICATION FAILED TO ...Failed to bind properties under 'server.address' to
  • C++11中的std::bind

    万次阅读 多人点赞 2019-08-29 16:09:59
    看看这段代码 这几天学习Cocos2d-x,看到了以下的一段代码: // new callbacks based on C++11 #define CC_CALLBACK_0(__selector__,__target__, ...) std::bind(&__selector__,__tar...
  • 今天在使用JDK 9.0 环境下使用Hibernate 时候出现了这个错误,错误日志如下: 故障原因: JAXB API是java EE 的API,因此在java SE 9.0 中不再包含这个 Jar 包。 java 9 中引入了模块的概念,默认情况下,...
  • 那一年, 某哥让我写个tcp服务端客户端程序, 我草草写完, 然后他检查,并问我, 为什么客户端不用bind呢? 然后, 我卡壳了, 好尴尬啊。 现在, 我们来一起彻底了解一下这个问题。 先看看bind函数是干啥的。bind...

空空如也

1 2 3 4 5 ... 20
收藏数 807,924
精华内容 323,169
关键字:

bind