Я знаю, что это плохая практика. Не пишите код, как это, если это вообще возможно.
Конечно, мы всегда окажемся в ситуациях, когда умный фрагмент встроенного Javascript может быстро решить проблему.
Я преследую этот запрос в интересах полного понимания того, что происходит (и потенциальных ловушек), когда что-то вроде этого написано:
<a href="#" onclick="alert('Hi')">Click Me</a>
Насколько я могу сказать, это функционально то же самое, что
<script type="text/javascript">
   $(function(){ // I use jQuery in this example
       document.getElementById('click_me').onclick = 
           function () { alert('Hi'); };
   });
</script>
<a href="#" id="click_me">Click Me</a>
Экстраполируя это, кажется, что строка, назначенная атрибуту onclick, вставлена в анонимную функцию, которая назначается обработчику щелчка элемента. Это на самом деле?
Потому что я начинаю делать такие вещи:
<a href="#" onclick="$(this).next().fadeIn(); return false;">Display my next sibling</a> <!-- Return false in handler so as not to scroll to top of page! --> 
Что работает. Но я не знаю, сколько это взломало. Это выглядит подозрительно, потому что нет никакой видимой функции, возвращаемой из!
Вы можете спросить, почему вы это делаете, Стив? Inline JS - плохая практика!
Ну, честно говоря, мне надоело редактировать три разных раздела кода, чтобы изменить один раздел страницы, особенно когда я просто прошибаю что-то, чтобы увидеть, будет ли это вообще работать. Это намного проще и иногда даже имеет смысл для кода, специально связанного с этим элементом HTML, который должен быть определен прямо внутри элемента: когда я решаю через 2 минуты, что это ужасная, ужасная идея, я могу уничтожить весь div (или что-то еще), и у меня нет кучи таинственных JS и CSS cruft, висящих на остальной части страницы, что замедляет рендеринг. Это похоже на концепцию локальности ссылки, но вместо промахов кэша мы смотрим на ошибки и раздувание кода.