У меня есть пункт меню HTML, который я связать click
обработчик в JQuery:JQuery контекст привязки несовпадение
var xyz = {
getMainContainerSelector: function() {
return '.container#main';
},
bindMenuOptions: function() {
$('#menu_outcome_list').bind('click', function() {
// inject template
$(this.getMainContainerSelector()).html(ich.outcomeListTemplate({}));
// load datatable
$('#outcomes').dataTable({
"bServerSide": true,
'sPaginationType': 'bootstrap',
"sAjaxSource": '../php/client/json.php?type=outcomes'
});
});
},
...
}
У меня есть проблемы со следующей строкой:
$(this.getMainContainerSelector()).html(ich.outcomeListTemplate({}));
и я думаю, что это проблема контекста. Я имею в виду, что внутри функции связывания this
больше не xyz
, а элемент HTML ('#menu_outcome_list'). То, что я хочу сделать, это просто вызвать метод xyz
изнутри функции bind.
. Xyz.getMainContainerSelector() не работает? –
примечание стороны, используя '.container # main', не имеет смысла, просто используйте' # main' –
@KevinB, ну, вы правы;) – ducin