Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/80.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
JavaScript正确绑定参数_Javascript_Jquery_Javascript Objects - Fatal编程技术网

JavaScript正确绑定参数

JavaScript正确绑定参数,javascript,jquery,javascript-objects,Javascript,Jquery,Javascript Objects,我有以下bootstrap3按钮代码,它被封装在一个容器div中。该按钮除了一个plus图标外没有文本 <div id="container"> ... <a type="button" class="btn btn-success input-sm btn-add"> <span class="glyphicon glyphicon-plus-sign black" aria-hidden="true"></span&g

我有以下
bootstrap3
按钮代码,它被封装在一个容器
div
中。该按钮除了一个
plus
图标外没有文本

<div id="container">
    ...
    <a type="button" class="btn btn-success input-sm btn-add">
        <span class="glyphicon glyphicon-plus-sign black" aria-hidden="true"></span>
   </a>
    ...
</div>
  • 当我单击
    plus
    图标外但按钮内的任何位置时,事件将被触发,并在结束时不可见

  • 当我恰好单击
    plus
    图标时,事件被触发,但只有图标不可见,按钮为空。绑定事件时,我不知道如何正确传递按钮的上下文


注意:我是面向对象JavaScript新手

使用
evt.currentTarget
。我认为,这是一个特殊的jQuery事件字段,与事件委派有关。我希望我有一个更可靠的答案,但我很高兴它对你有用:)

编辑:这里有一些文档

事件。当前目标

描述:事件冒泡阶段中的当前DOM元素

此属性通常与函数的此属性相同

事件目标

描述:启动事件的DOM元素

目标属性可以是为事件注册的元素 或者是它的后代。比较event.target和 这是为了确定事件是否因事件而被处理 冒泡。此属性在事件委派中非常有用,当 事件泡沫


也许试试evt。currentTarget@positlabs工作得很有魅力!!!:-)呵呵。酷!我补充了一个答案。
var query_builder = {
    init: function() {
        this.cacheDom();
        this.bindEvents();
    },
    cacheDom: function() {
        this.$container = $("#container");
        ...
    },
    bindEvents: function() {
        this.$container.on('click', '.btn-add', this.addRule.bind(this));
        ...
    },
    addRule: function(evt) {
        ...
        ...
        $(evt.target).addClass('invisible');
    }
}