Всегда хорошо разделять уровень представления и поведение между HTML и Javascript на основе первой книги.
Они говорят мне не делать:
<textarea onclick="showAlert()"></textarea>
Но вместо этого делайте ниже:
Пример ниже отделяет поведение от кода HTML (структура).
<html>
<head>
<script type="text/javascript">
window.onload = init;
function init() {
$('txt_area').onclick = showAlert;
}
function showAlert(say) {
alert(say);
}
</script>
</head>
<body>
<textarea id="txt_area"></textarea>
</body>
</html>
Это позволяет HTML (структуре) выглядеть чисто, а часть «поведения» инициализируется в функции init ()когда страница загружается.Я понимаю, что до сих пор.
Но тогда мне интересно, как я должен передать аргумент функции showAlert () ???
Ниже не работает, он будет вызывать showAlert ()как только страница загрузится, и это не то, что я хочу, потому что она должна быть запущена по клику.
function init() {
$('txt_area').onclick = showAlert("hello");
}
Можно ли передать аргументы в функцию showAlert (), но при этом разделить поведение и структуру?
ОБНОВЛЕНИЕ
Забыл упомянуть ... Я использую прототип.