jQuery点击功能只调用一次

时间:2017-11-01 23:27:14

标签: javascript jquery

正如标题所说,我有一些代码只会触发一次点击事件。你们可以看看吗?

更新: 我编辑了代码以显示整个功能。我正在为jQuery制作一个插件。无论如何,关键是代码已经工作但a.click()的点击功能只触发一次,只删除一个过滤器。

    addFilterProcess: function ()
    {
        var $this = this;
        var select_filters = this.select_filters;
        var selected_filter = select_filters.val();

        if (selected_filter != 0)
        {
            if (this.active_filters.length == 0)
            {
                this.active_filters.push(selected_filter);
                this.used_filters.append(this.template_show_filter(this.options.available_filters[selected_filter], selected_filter));


                var filter = this.used_filters.find('#filter-'+selected_filter);
                var a = filter.find('a');
                a.click(function () {
                    $this.removeFilter(a.attr('filter'));
                });

                this.btn_apply_filters.show();
                this.btn_cancel_filters.show();

                this.btn_apply_filters.on('click', function () {
                    $this.applyFilters();
                });
                this.btn_cancel_filters.on('click', function () {
                    $this.cancelFilters();
                });


                /*
                Reset the select, to show the first option
                 */
                select_filters.val(0);
            }
            else
            {
                if (this.active_filters.indexOf(selected_filter) === -1)
                {
                    this.active_filters.push(selected_filter);
                    this.used_filters.append(this.template_show_filter(this.options.available_filters[selected_filter], selected_filter));

                    /*
                    Reset the select, to show the first option
                     */
                    select_filters.val(0);
                }
            }

        }
    },

1 个答案:

答案 0 :(得分:1)

尝试

$(this).removeFilter(a.attr('filter'));