Javascript jQuery此上下文以指向上下文中的元素

Javascript jQuery此上下文以指向上下文中的元素,javascript,jquery,this,Javascript,Jquery,This,我有一个使用BS3模式事件的情况,我的应用程序功能被包装在带有公开方法的对象中(显示模块模式)。我已从BS接收到事件,我希望我的$this指向事件对象,而不是应用程序对象。 我尝试使用jQuery代理,这似乎是最好的选择,但由于某些原因,这些方法对我来说并不奏效 var globalAppDef = (function() { function modalFilters() { $('#filtersMore') .on('show.bs.modal', (event) =&g

我有一个使用BS3模式事件的情况,我的应用程序功能被包装在带有公开方法的对象中(显示模块模式)。我已从BS接收到事件,我希望我的$this指向事件对象,而不是应用程序对象。 我尝试使用jQuery代理,这似乎是最好的选择,但由于某些原因,这些方法对我来说并不奏效

var globalAppDef = (function() {

function modalFilters() {
    $('#filtersMore')
    .on('show.bs.modal', (event) => {
        const sourceElement = $(event.relatedTarget);
        $(sourceElement.data().filters).removeClass('hidden');
    })
    /*
     * Transfer the proper @this of the event outside the {globalAppDef} Object
     */
    .on('hidden.bs.modal', $.proxy((event) => {
        $(this).find(".form-list-items-1").addClass('hidden');
        $(this).find(".form-list-items-1").addClass('hidden');
    }, this));
}

return modalFilters: modalFilters

}
});

var globalApp = new globalAppDef();
globalApp.initialize();
$(document).ready(function () {globalApp.modalFilters()});

我要实现的是在第二个hidden.bs.modal$上指向我的modal,它是$('#filtersMore')元素

实际上,正是箭头函数使其保留在对象上下文中。 这样做有效:

.on('hidden.bs.modal', $.proxy(function (event) {
        $(this).find(".form-list-items-1, .form-list-items-2").addClass('hidden');
    }, $('#filtersMore')));