0
根据头第一本书,在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(),这不是我想要的,因为它需要被触发onclick。
function init() {
$('txt_area').onclick = showAlert("hello");
}
是否可以传递参数给showAlert()函数,但仍分开的行为和结构?
UPDATE
忘了提..我使用的原型。
这将肯定会给出错误;) – Reigel 2010-09-24 07:16:11
谢谢,完全没有想到它,JS可以做到这一点! – 2010-09-24 07:17:25
@Reigel:我测试了提供的代码,它似乎工作得很好。 – 2010-09-24 07:19:53