2017-03-16 56 views
0

我有一個使用BS3模態事件的情況,我的應用程序功能被包裝在暴露的方法(揭示模塊模式)的對象中。我有從BS收到的事件,我有什麼指向事件對象而不是應用程序對象。 我試圖jquery this context與jQuery的代理,這似乎是最好的事情,但由於某些原因,事情並沒有爲我工作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 $ this指向我的Modal,它是$('#filtersMore')元素。

回答

0

實際上它是Arrow函數的原因,它留在Object上下文中。 這樣工作:

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