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

    千次阅读 2017-10-31 10:14:32
    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函数详解

    万次阅读 2015-04-12 11:14:15
    前面我们已经说了, 套接字也创建了, “地方”也定义了,下面就需要将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-04-10 21:56:15
    基本TCP客户端/服务器程序的套接字函数1、bind函数把一个本地协议地址赋予一个套接字。对于网际协议,协议地址是32位的IPv4地址或是128位的IPv6地址与16位的TCP或UDP端口号的组合。#include&lt;sys/socket.h&...
  • this与bind(this)

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

    千次阅读 2018-06-04 17:13:36
    语法Editfun.bind(thisArg[, arg1[, arg2[, ...]]])参数thisArg当绑定函数被调用时,该参数会作为原函数运行时的 this 指向。当使用new 操作符调用绑定函数时,该参数无效。arg1, arg2, ...当绑定函数被调用时...
  • bind函数的作用

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

    2018-08-30 11:46:42
    现今使用最为广泛的DNS服务器软件就是Bind(Berkeley Internet Name Domain Service)。Bind原本是美国DARPA资助伯克利大学(Berkeley)开设的一个研究生课题,后来经过多年的变化发展,已经成为世界上使用最为广泛的...
  • 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-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:18
    bind()函数介绍  在建立套接字文件描述符成功后,需要对套接字进行地址和端口的绑定,才能进行数据的接收和发送操作。 函数原型  bind()函数将长度为addlen的struct sockadd类型的参数my_addr与sockfd绑定在一起,...
  • socket编程之bind()函数

    万次阅读 2012-03-21 09:18:22
    bind() 把名字和套接字相关联 使用格式 #include sys/types.h> #include sys/socket.h> int bind(int sockfd, const struct sockaddr *addr,socklen_t *addrlen); 功能描述 当用socket()函数创建套接字...
  • python bind()方法

    万次阅读 2017-05-14 15:12:43
    一、关于bind()被引用的区别 其中的  self.Bind(wx.EVT_BUTTON, self.OnButtonClick, self.button)   self.button.Bind(wx.EVT_ENTER_WINDOW, self.OnEnterWindow)   self.button.Bind(wx.EVT_LEAVE_WIN
  • redis bind多个ip

    万次阅读 2016-12-15 15:09:36
    例如:bind 127.0.0.1 172.16.1.192 //绑定多个端口用空格 # By default, if no "bind" configuration directive is specified, Redis listens # for connections from all the network in
  • centOS6.5 nginx提示still could not bind()

    万次阅读 2016-10-26 15:34:30
    Starting nginx: nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address already in use) nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address already in use) nginx: [emerg] bind() to 0.0.0.0:80 fail
  • v-model和v-bind的区别

    万次阅读 2017-04-19 10:52:13
    Mustache (双大括号写法)不能在 HTML ...div v-bind:id="dynamicId">div> 这对布尔值的属性也有效 —— 如果条件被求值为 false 的话该属性会被移除: button v-bind:disabled="someDynamicCondition">Butt
  • 查看bind版本命令

    千次阅读 2011-07-04 10:02:09
    dig @localhost version.bind txt chaos
  • mybatis bind 标签

    万次阅读 2017-12-08 13:04:57
    bind 标签可以使用 OGNL 表达式创建一个变量井将其绑定到上下文中。在前面的例子中, UserMapper.xml 有一个 selectByUser 方法,这个方法用到了 like 查询条件,部分代码如下 。” userNarne != null and ...
  • 运行Tomcat时若出现Address already in use: JVM_Bind 端口被占用,一般使用下面几个办法可以解决: 假设端口为1099 1.启动cmd, 执行命令netstat -ano|findstr 1099 ,会查询出占用端口号的进程号,这时候执行...
1 2 3 4 5 ... 20
收藏数 718,066
精华内容 287,226
关键字:

bind