Попробуйте изменить
this.Chests.push(Chest(random(25,375), random(25,375), random(20,25), random(15,20), random(0,5)));
на
// note the "new" keyword!
this.Chests.push(new Chest(random(25,375), random(25,375), random(20,25), random(15,20), random(0,5)));
Ключевое слово new
важно для правильного построения объекта с правильным контекстом. Он также правильно возвращает объект Chest
, который будет помещен в ваш массив.
Вы можете найти больше информации с этим ответом Stackoverflow: https://stackoverflow.com/a/30478240/11240618 , а также здесь: https://developer.mozilla.org / EN-US / Docs / Web / JavaScript / Справочник / Операторы / новый
Просто установите:
#ui-datepicker-div { display: none; }
в вашем CSS-файле и ваш код:
$("#filter_date").datepicker( "widget" ).is(":visible")
будет работать правильно!
Внезапно я мог подумать об использовании событий beforeShow и onClose , определенных для элемента управления datepicker, для переключения класса (или флага) где-нибудь и проверки наличие которых позволяет определить, открыт ли элемент управления датпикером.