В вашем коде есть одна действительно очевидная проблема: вы объявляете глобальную переменную (вне вашей функции) с именем elem
, а затем ваша функция имеет параметр, также называемый elem
.Таким образом, каждая ссылка на elem
внутри функции будет относиться к параметру, а не к глобальному.Учитывая, как вы вызываете функцию, параметр ссылается на ваш элемент <li>
, поэтому это означает, что функция в настоящее время перезаписывает и / или создает свойства для этого элемента.
Если вы измените имя параметра, наскажем clickedElem
тогда внутри функции вы можете использовать elem
, когда вы имеете в виду глобальную переменную, и clickedElem
, когда вы имеете в виду параметр.
Помимо этого, я не совсем уверен, что вы пытаетесьдобиться, поэтому я не знаю, что еще посоветовать.
(И, как я уже говорил в комментарии выше, нет смысла инициализировать elem = new Object()
, потому что на следующей строке вы сразу назначаете его равнымчто-то еще. Но это не доставит вам проблем, это просто бессмысленно.)