Проблема заключается в обратном вызове, который передается вашему mousedown
слушателю событий.
document.addEventListener('mousedown', function(e));
Во-первых, , это неверный синтаксис - вы объявляете функцию без блока кода для выполнения. function(e){}
- это объявление функции, function(e)
- нет. Если я запускаю ваш Jsfiddle с открытой консолью разработчика, мы действительно можем увидеть ошибку синтаксиса:
Uncaught SyntaxError: Unexpected token ')'
Это объясняет, почему первая половина вашего скрипта не выполняется, когда вы соедините его со второй половиной.
Вы можете увидеть эту же ошибку, просто открыв консоль разработчика при работе с Js Fiddle, и я призываю вас привыкнуть следить за консолью, чтобы узнать о ней другие ошибки в вашем скрипте.
Во-вторых , вы определили функцию clickRing
и фактически не используете ее. document.addEventListener('mousedown', function(e){})
- правильный синтаксис, но он не относится к определенной вами функции, доступ к которой можно получить с помощью переменной clickRing
. Таким образом, вместо этого вы можете задать
document.addEventListener('mousedown', clickRing);
Что касается других ваших вопросов, связанных с нажатием кнопки мыши / наведением курсора, они не связаны, и я рекомендую вам изучить их отдельно. Я подозреваю, что вы обнаружите, что CSS не будет работать на кнопках, так как они нарисованы в Canvas и не являются частью DOM.
В противном случае, спасибо, это было хорошо письменный вопрос